// PR c++/5748 // This testcase ICEd because used flag from the anon union variables // was not propagated back to the anon union itself, causing addressof // not to be replaced with stack slot. // { dg-do compile } // { dg-options "-O2" } struct A { A (); ~A (); int foo (); int bar (void *x, int y); }; int A::foo() { union { int a; int b; }; if (bar (&a, sizeof (int)) != 32) return 16; return 0; }