------- Comment #2 from rguenth at gcc dot gnu dot org 2006-07-17 13:29 ------- Runnable testcase:
extern void abort(void); struct Bar { int p; }; struct Foo { struct Bar *p; }; struct Bar p0 = { 0 }; struct Bar p1 = { 1 }; void bar(struct Foo *f) { f->p = &p0; } int foo(struct Foo *f) { f->p->p = 1; bar(f); return f->p->p; } int main() { struct Foo f; f.p = &p1; if (foo(&f) != 0) abort (); return 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28410