| // Test that converting a COND_EXPR to void doesn't result in trying to | |
| // bitwise copy a class with a nontrivial copy constructor (and thus a | |
| // compiler abort). | |
| // { dg-options "-O" } | |
| struct A { | |
| virtual ~A() { } | |
| }; | |
| A a1, a2; | |
| inline A& one () { return a1; } | |
| inline A& two () { return a2; } | |
| inline void f (int i) | |
| { | |
| i ? a1 : a2; | |
| i ? one() : two(); | |
| } | |
| int main () | |
| { | |
| f (1); | |
| } |