1 // { dg-do assemble  }
2 
3 class C2 {
4 public:
5   ~C2();
6   C2 a() const;
7 };
8 class C3 {
9 public:
10   C3(const C2 &c);
11 };
12 class C4
13 {
14 public:
15   C3 *foo(bool b, const C2 &c);
16   C2 d() const;
17 };
foo(bool b,const C2 & c)18 C3 *C4::foo(bool b, const C2 &c)
19 {
20   return new C3(b ? d().a() : c);
21 }
22