aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.dg/opt/pr83609.C
blob: a43d2916d9d87428d0104abeb48a8f193e0cabe8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// PR middle-end/83609
// { dg-do compile }
// { dg-options "-O2 -fno-tree-forwprop" }

template <typename> class B;
template <> struct B<float>
{
  float foo () { return __real__ b; }
  _Complex float b;
};

void bar (int);

template <class T>
void
baz ()
{
  B<T> h;
  T *a = (T *) &h;
  a[0] = a[1] = 6;
  h.foo () ? void () : bar (7);
}

int
main ()
{
  baz<float> ();
}