diff options
author | Jason Merrill <jason@redhat.com> | 2015-03-17 13:38:25 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2015-03-17 13:38:25 -0400 |
commit | 3d17be83c1e1e64828bf0e5181cbde99f722232d (patch) | |
tree | 9fb0322c50f5c1612e36562f38d86b45f4e83610 /gcc | |
parent | 1c6f4a147dd2e18e9a03b2a275ac9050edc0c3d4 (diff) | |
download | gcc-3d17be83c1e1e64828bf0e5181cbde99f722232d.zip gcc-3d17be83c1e1e64828bf0e5181cbde99f722232d.tar.gz gcc-3d17be83c1e1e64828bf0e5181cbde99f722232d.tar.bz2 |
re PR c++/65061 (Issue with using declaration and member class template)
PR c++/65061
* parser.c (cp_parser_template_name): Call strip_using_decl.
From-SVN: r221478
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/parser.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/inherit/using8.C | 15 |
3 files changed, 22 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b4fff50..01484bf 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2015-03-16 Jason Merrill <jason@redhat.com> + + PR c++/65061 + * parser.c (cp_parser_template_name): Call strip_using_decl. + 2015-03-16 Marek Polacek <polacek@redhat.com> DR 1688 diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index a209ee6..a18f38c 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -14051,6 +14051,8 @@ cp_parser_template_name (cp_parser* parser, /*ambiguous_decls=*/NULL, token->location); + decl = strip_using_decl (decl); + /* If DECL is a template, then the name was a template-name. */ if (TREE_CODE (decl) == TEMPLATE_DECL) { diff --git a/gcc/testsuite/g++.dg/inherit/using8.C b/gcc/testsuite/g++.dg/inherit/using8.C new file mode 100644 index 0000000..b7677c8 --- /dev/null +++ b/gcc/testsuite/g++.dg/inherit/using8.C @@ -0,0 +1,15 @@ +// PR c++/65061 + +struct B +{ + template<typename T> + struct S {}; +}; + +struct D : B +{ + using B::S; + + template<typename T> + void doIt(/*struct*/ S<T>&); +}; |