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