// { dg-lto-do assemble } struct Foo { static const int dummy; int bit_field:1; int dummy2:1; int dummy3:1; }; struct Bar { Foo foo; }; int func(const Bar& b) { return b.foo.bit_field; } struct Baz { Bar& operator*() {} }; void func1(Baz baz, int i, Bar bar) { i || func(bar); *baz = bar; } void func2(Baz baz, Bar bar) { func1(baz, 0, bar); }