diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/p3139.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/p3139.C | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3139.C b/gcc/testsuite/g++.old-deja/g++.mike/p3139.C new file mode 100644 index 000000000..691017859 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.mike/p3139.C @@ -0,0 +1,26 @@ +// { dg-do run } +// prms-id: 3139 + +extern "C" int printf(const char *, ...); + +class A { + public: + A() { } + virtual int a() = 0; +}; + +class B : virtual public A { + public: + virtual int a() = 0; +}; + +class C : public B { + public: + int a() { return 42; } +}; + +int main() { + B * b = new C; + printf("%d.\n", b->a()); + return 0; +} |