// FIXME: GCC doesn't consider the the following two statements to be errors.
*(0?(double*)0:(void*)(int*)0)=0;// expected-error {{incomplete type 'void' is not assignable}}
*(0?(double*)0:(void*)(double*)0)=0;// expected-error {{incomplete type 'void' is not assignable}}
*(0?(double*)0:(int*)(void*)0)=0;// expected-error {{incomplete type 'void' is not assignable}} expected-warning {{pointer type mismatch ('double *' and 'int *')}}
*(0?(double*)0:(double*)(void*)0)=0;
*((void*)0)=0;// expected-error {{incomplete type 'void' is not assignable}}
return((((&x)!=((void*)0))?(*(&x)=((char)1)):(void)((void*)0)),(unsignedlong)((void*)0));// expected-warning {{C99 forbids conditional expressions with only one void side}}
}
#define nil ((void*) 0)
externintf1(void);
intf0(inta){
// GCC considers this a warning.
returna?f1():nil;// expected-warning {{pointer/integer type mismatch in conditional expression ('int' and 'void *')}} expected-warning {{incompatible pointer to integer conversion returning 'void *', expected 'int'}}