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