Merge from mainline.
[official-gcc.git] / gcc / testsuite / g++.dg / overload / cond1.C
blob74f0f3c49e3a2dd0858040a627050d6b79eff3ef
1 // Test that converting a COND_EXPR to void doesn't result in trying to
2 // bitwise copy a class with a nontrivial copy constructor (and thus a
3 // compiler abort).
5 // { dg-options "-O" }
7 struct A {
8   virtual ~A() { }
9 };
11 A a1, a2;
12 inline A& one () { return a1; }
13 inline A& two () { return a2; }
15 inline void f (int i)
17   i ? a1 : a2;
18   i ? one() : two();
21 int main ()
23   f (1);