------- Comment #16 from rguenth at gcc dot gnu dot org 2010-05-05 14:01 ------- Runtime testcase:
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; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43987