1 // PR middle-end/83608 2 // { dg-do compile } 3 // { dg-options "-O2" } 4 5 template <typename> class B; 6 template <> struct B<float> 7 { 8 float foo () { return __real__ b; } 9 _Complex double b; 10 }; 11 12 void bar (int); 13 14 template <class T> 15 void 16 baz () 17 { 18 B<T> h; 19 T *a = (T *) &h; 20 a[0] = a[1] = 6; 21 h.foo () ? void () : bar (7); 22 } 23 24 int 25 main () 26 { 27 baz<float> (); 28 } 29