// PR c++/8674 // Bug: Since B().a is an rvalue, we tried to treat it like a TARGET_EXPR // and elide the copy. But that produces a bitwise copy, which causes us // to abort in cp_expr_size. // Test that we actually run the A copy constructor when calling f(). // { dg-do run } int c; struct A { A () { ++c; } A (const A&) { ++c; } }; struct B { A a; }; void f (A) { } int main () { f (B().a); return c < 2; }