diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/lto/20080915_0.C')
-rw-r--r-- | gcc/testsuite/g++.dg/lto/20080915_0.C | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/lto/20080915_0.C b/gcc/testsuite/g++.dg/lto/20080915_0.C new file mode 100644 index 000000000..3789765a9 --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/20080915_0.C @@ -0,0 +1,29 @@ +// { 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); +} |