diff options
Diffstat (limited to 'gcc/testsuite/g++.dg/pr48660.C')
-rw-r--r-- | gcc/testsuite/g++.dg/pr48660.C | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/pr48660.C b/gcc/testsuite/g++.dg/pr48660.C new file mode 100644 index 000000000..37b61741a --- /dev/null +++ b/gcc/testsuite/g++.dg/pr48660.C @@ -0,0 +1,22 @@ +template<int N> struct val { char a[N]; }; + +class Base +{ +public: + virtual val<1> get1() const = 0; + virtual val<2> get2() const = 0; + virtual val<3> get3() const = 0; + virtual val<4> get4() const = 0; +}; + +class Derived : public virtual Base +{ +public: + virtual val<1> get1() const { return foo->get1(); } + virtual val<2> get2() const { return foo->get2(); } + virtual val<3> get3() const { return foo->get3(); } + virtual val<4> get4() const { return foo->get4(); } + Base *foo; +}; + +Base* make() { return new Derived; } |