1char B[256 * sizeof(void *)]; 2typedef void *FILE; 3typedef struct globals { 4 int c; 5 FILE *l; 6} __attribute__((may_alias)) T; 7void add_input_file(FILE *file) 8{ 9 (*(T*)&B).l[0] = file; 10} 11extern void abort (void); 12int main() 13{ 14 FILE x; 15 (*(T*)&B).l = &x; 16 add_input_file ((void *)-1); 17 if ((*(T*)&B).l[0] != (void *)-1) 18 abort (); 19 return 0; 20} 21