char B[256 * sizeof(void *)]; | |
typedef void *FILE; | |
typedef struct globals { | |
int c; | |
FILE *l; | |
} __attribute__((may_alias)) T; | |
void add_input_file(FILE *file) | |
{ | |
(*(T*)&B).l[0] = file; | |
} | |
extern void abort (void); | |
int main() | |
{ | |
FILE x; | |
(*(T*)&B).l = &x; | |
add_input_file ((void *)-1); | |
if ((*(T*)&B).l[0] != (void *)-1) | |
abort (); | |
return 0; | |
} |