diff options
Diffstat (limited to 'src/regression/add4.c')
| -rw-r--r-- | src/regression/add4.c | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/regression/add4.c b/src/regression/add4.c new file mode 100644 index 0000000..ca370c5 --- /dev/null +++ b/src/regression/add4.c @@ -0,0 +1,82 @@ +#include "gpsim_assert.h" + +unsigned char failures = 0; + +//bit bit0 = 0; +int int0 = 0; +int int1 = 0; +char char0 = 0; +char char1 = 0; +long long0 = 0; +long long1 = 0; +unsigned long ulong0 = 0; +unsigned long ulong1 = 0; +#define NULL 0 +char *cP0=NULL; +char *cP1=NULL; +int *iP0=NULL; +int *iP1=NULL; + +void +done() +{ + ASSERT(MANGLE(failures) == 0); + PASSED(); +} + +/* pointer to char arithmetic */ + +void pc_add(void) +{ + + if(*cP1) + failures++; + + *cP1 += 1; + if(*cP1 != 1) + failures++; + + if(char0 != 1) + failures++; + + char0++; + + if(*cP1 != 2) + failures++; + + char1 = char0 + *cP1; + + if(char1 != 4) + failures++; +} + +/* pointer to integer arithmetic */ +void pi_add(void) +{ + if(*iP0) + failures++; + + *iP0 += 1; + + if(*iP0 != 1) + failures++; + + if(int0 != 1) + failures++; + + int1 = int0 + *iP0; + if(int1 != 2) + failures++; +} + +void main(void) +{ + + cP1 = &char0; + pc_add(); + + iP0 = &int0; + pi_add(); + + done(); +} |
