mirror of
https://github.com/cc65/cc65.git
synced 2024-11-18 15:05:14 +00:00
95 lines
1.1 KiB
C
95 lines
1.1 KiB
C
/*
|
|
!!DESCRIPTION!!
|
|
!!ORIGIN!! SDCC regression tests
|
|
!!LICENCE!! GPL, read COPYING.GPL
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <limits.h>
|
|
|
|
unsigned char success = 0;
|
|
unsigned char failures = 0;
|
|
unsigned char dummy = 0;
|
|
|
|
#ifdef SUPPORT_BIT_TYPES
|
|
bit bit0 = 0;
|
|
#endif
|
|
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 ()
|
|
{
|
|
dummy++;
|
|
}
|
|
|
|
/* 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++;
|
|
}
|
|
|
|
int main(void)
|
|
{
|
|
cP1 = &char0;
|
|
pc_add();
|
|
|
|
iP0 = &int0;
|
|
pi_add();
|
|
|
|
success = failures;
|
|
done();
|
|
printf("failures: %d\n",failures);
|
|
|
|
return failures;
|
|
}
|