aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2016-08-04 12:06:09 -0400
committerJason Merrill <jason@gcc.gnu.org>2016-08-04 12:06:09 -0400
commit99676625e65ff23339115525f01a4a7a82e8ac3a (patch)
tree5637119cfcf0bcee6f44bd9687f53a18072bf622 /gcc/testsuite
parentc3f2032729e60c1d991c18ef56ec863322fe58ca (diff)
downloadgcc-99676625e65ff23339115525f01a4a7a82e8ac3a.zip
gcc-99676625e65ff23339115525f01a4a7a82e8ac3a.tar.gz
gcc-99676625e65ff23339115525f01a4a7a82e8ac3a.tar.bz2
PR c++/72796 - wrong resolution of scoped method call.
* typeck.c (finish_class_member_access_expr): Avoid stripping SCOPE_REF to dependent base. From-SVN: r239136
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/g++.dg/template/dependent-base2.C18
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.dg/template/dependent-base2.C b/gcc/testsuite/g++.dg/template/dependent-base2.C
new file mode 100644
index 0000000..b418832
--- /dev/null
+++ b/gcc/testsuite/g++.dg/template/dependent-base2.C
@@ -0,0 +1,18 @@
+// PR c++/72796
+// { dg-do compile { target c++11 } }
+
+struct a;
+template <int> struct b { typedef a c; };
+struct d {
+ void e(int);
+};
+struct a : d {
+ void e(int) = delete;
+};
+template <int f> struct g : b<f>::c {
+ g(int) { this->d::e(0); }
+};
+struct h : g<0> {
+ using i = g;
+ h() : i(0) {}
+};