121 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
main() {
 | 
						|
	exit(0);
 | 
						|
}
 | 
						|
 | 
						|
nested(a,b) {
 | 
						|
	if ((a<4 && b == 'r')
 | 
						|
		|| (a == 1 && (b == 'h' || b == 'i'))
 | 
						|
		|| (a == 2 && (b == 'o' || b == 'y'))
 | 
						|
	) a=b;
 | 
						|
}
 | 
						|
 | 
						|
/* type name scope */
 | 
						|
 | 
						|
void s(struct D *d) {}	/* this struct D differs from the one below */
 | 
						|
typedef struct D D;
 | 
						|
struct D {int x, y;} Dy={0};
 | 
						|
D Dz={1};
 | 
						|
Dfunc(){
 | 
						|
	D a; a.y=1;
 | 
						|
	s(&Dy);		/* error */
 | 
						|
}
 | 
						|
 | 
						|
/* qualifiers */
 | 
						|
 | 
						|
const a; int b;
 | 
						|
const int a, *x; int b, *y;
 | 
						|
volatile unsigned z;
 | 
						|
 | 
						|
f() {
 | 
						|
	x = y;
 | 
						|
	z = z + z;	/* should be 2 references to z's r-value */
 | 
						|
}
 | 
						|
f1() {
 | 
						|
	x = &a;
 | 
						|
	x = &b;
 | 
						|
	y = &a;		/* error */
 | 
						|
	y = &b;
 | 
						|
}
 | 
						|
f2(int **a, int **b) {
 | 
						|
	f(&x, &y);
 | 
						|
	**a = 0;
 | 
						|
	return **b;
 | 
						|
}
 | 
						|
g(const int *p) {
 | 
						|
	g(&a);
 | 
						|
	g(&b);
 | 
						|
	return *p;
 | 
						|
}
 | 
						|
h(int *p) {
 | 
						|
	f(&a);
 | 
						|
	f(&b);
 | 
						|
	return *p;
 | 
						|
}
 | 
						|
h1(const int x, int y) {
 | 
						|
	h1(a,b);
 | 
						|
	h1(b,a);
 | 
						|
	return x + y;
 | 
						|
}
 | 
						|
h2() {
 | 
						|
	char *b; const void *p;
 | 
						|
	p = b;
 | 
						|
	b = p;		/* error */
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/* static naming */
 | 
						|
 | 
						|
extern int yy; set1() { { static yy=1; yy=2;} yy=4;}
 | 
						|
static int yy; set2() { yy=5; {static yy=2; yy=3; }}
 | 
						|
static void goo() {}
 | 
						|
sss() { int goo; { static int goo();} goo=1;}
 | 
						|
rrr(p) float *p; { extern int xr;
 | 
						|
 { static float xr;
 | 
						|
 { extern int *xr; } p=&xr; }}
 | 
						|
 | 
						|
/* local extern */
 | 
						|
 | 
						|
static int ss1;
 | 
						|
int ss3;
 | 
						|
extern int ss5;
 | 
						|
setstatic() { extern int ss1,ss2,ss3,ss4; ss1 = ss2; ss3 = ss4; ss5 = 0;}
 | 
						|
static int ss2;
 | 
						|
int ss4;
 | 
						|
static int ss5;
 | 
						|
 | 
						|
/* function prototypes */
 | 
						|
 | 
						|
int fx1(void);
 | 
						|
int fx1();
 | 
						|
 | 
						|
int gx1(double x);
 | 
						|
int gx1(x) double x; { gx1(&x); }	/* error */
 | 
						|
 | 
						|
int hx1();
 | 
						|
int hx1(double x,...);	/* error */
 | 
						|
 | 
						|
int ff1(double x, int *y);
 | 
						|
int ff1(x,y) float x; int y[]; {x=y[0];}
 | 
						|
 | 
						|
int gg1(int a);
 | 
						|
int gg1(a,b){a=b;}
 | 
						|
 | 
						|
int hh1(const int x);
 | 
						|
hh1(a) {return a;}
 | 
						|
 | 
						|
extern int strcmp(const char*, const char*);
 | 
						|
extern void qsort(void*, int, int, int (*)(const void*, const void*));
 | 
						|
extern int cmp(char**a, char**b) { return strcmp(*a,*b); }
 | 
						|
sort() {
 | 
						|
	int n; char *a[100];
 | 
						|
	qsort(a, n, sizeof(char*), (int (*)(const void*, const void*))cmp);
 | 
						|
	qsort(a, n, sizeof(char*), cmp);	/* error */
 | 
						|
}
 | 
						|
 | 
						|
/* nasty calls */
 | 
						|
 | 
						|
onearg(){
 | 
						|
	int a,b,c,d;
 | 
						|
	f( ( (a? (b = 1): (c = 2)), (d ? 3 : 4) ) );	/* 1 argument */
 | 
						|
}
 |