diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p4667.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p4667.C | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4667.C b/gcc/testsuite/g++.old-deja/g++.mike/p4667.C new file mode 100644 index 000000000..e8eee21be --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p4667.C @@ -0,0 +1,32 @@ +// { dg-do run } +// prms-id: 4667 + +int counter = 0; +int a = 0; +int b = 0; +int c = 0; + +struct A { + A() { a = counter++; } +}; + +struct B { + B() { b = counter++; } +}; + +struct C : public virtual B { + C() { c = counter++; } +}; + +struct D : public virtual A, public virtual C { }; + +extern "C" int printf(const char*,...); +int main(void) { + D d; + + if (!(a == 0 && b == 1 && c == 2)) { + return 1; + } + + return 0; +} |