diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/abi/layout3.C')
-rw-r--r-- | gcc/testsuite/g++.dg/abi/layout3.C | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/abi/layout3.C b/gcc/testsuite/g++.dg/abi/layout3.C new file mode 100644 index 000000000..a30a85219 --- /dev/null +++ b/gcc/testsuite/g++.dg/abi/layout3.C @@ -0,0 +1,27 @@ +// { dg-do run { target i?86-*-* x86_64-*-* } } +// { dg-require-effective-target ilp32 } +// { dg-options "-fabi-version=0 -w" } + +struct S { + virtual void f() {} +}; + +struct T : virtual public S { }; + +struct U : public S, virtual public T { + char c[100]; +}; + +struct V : public U, virtual public S {}; + +struct W : public V { + int i; +}; + +int main () { + W w; + + if ((char*) &w.i - (char *) &w != 104) + return 1; +} + |