1 // { dg-do assemble  }
2 
3 class foo {
4 public:
5     ~foo();
6     foo &operator=(const foo &);
7     foo	e() const;
8 };
9 class bar {
10 public:
11     foo	d() const;
12 };
13 struct x {
14     foo a;
15     bar* b;
16 };
baz(x * f,int ic)17 void baz(x *f, int ic)
18 {
19     f->a = ic ? f->b->d().e() : f->b->d();
20 }
21