diff options
author | Jason Merrill <jason@redhat.com> | 2016-08-04 12:06:09 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2016-08-04 12:06:09 -0400 |
commit | 99676625e65ff23339115525f01a4a7a82e8ac3a (patch) | |
tree | 5637119cfcf0bcee6f44bd9687f53a18072bf622 /gcc/testsuite | |
parent | c3f2032729e60c1d991c18ef56ec863322fe58ca (diff) | |
download | gcc-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.C | 18 |
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) {} +}; |