/* Error:
   Success:
   Execute
*/

void printf(char*,...);

struct {	
	int bit0 : 1; /*change int to unsigned or signed and the answer is obvious*/
} flags; 

int main() { 	
	int *p = (int *)(&flags); /*no dependence on the sizeof(int)anymore!	*/
	*p = -1;	/*force all bits to be "1"	*/
	/*the gcc compiler will give a warning that one or other ofthese 2 tests is always false	*/
	if (flags.bit0 == 1) printf("-bits-");
	if (flags.bit0 == -1) printf("-bits+");

	return 0;
}
 
/*Bit Field Interpretation = -bits[+|-]*/
