From c7bb3484a24f6770e7633d38f3b1f7dcc46da6bb Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Wed, 11 Jun 2014 17:28:14 +0000 Subject: re PR c++/60265 ([C++11] using-declaration of enumerator fails if fully qualified) /cp 2014-06-11 Paolo Carlini PR c++/60265 * parser.c (cp_parser_using_declaration): Handle unscoped enums. * name-lookup.c (validate_nonmember_using_decl): Adjust error message. /testsuite 2014-06-11 Paolo Carlini PR c++/60265 * g++.dg/cpp0x/using-enum-1.C: New. * g++.dg/cpp0x/using-enum-2.C: Likewise. From-SVN: r211479 --- gcc/cp/ChangeLog | 7 +++++++ gcc/cp/name-lookup.c | 2 +- gcc/cp/parser.c | 2 ++ 3 files changed, 10 insertions(+), 1 deletion(-) (limited to 'gcc/cp') diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e330f73..8bd4a73 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,12 @@ 2014-06-11 Paolo Carlini + PR c++/60265 + * parser.c (cp_parser_using_declaration): Handle unscoped enums. + * name-lookup.c (validate_nonmember_using_decl): Adjust error + message. + +2014-06-11 Paolo Carlini + PR c++/19200 * parser.c (cp_parser_declarator): Add bool parameter. (cp_parser_direct_declarator): Likewise, use it. diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 90f5108..75b46ac 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -2487,7 +2487,7 @@ validate_nonmember_using_decl (tree decl, tree scope, tree name) member-declaration. */ if (TYPE_P (scope)) { - error ("%qT is not a namespace", scope); + error ("%qT is not a namespace or unscoped enum", scope); return NULL_TREE; } else if (scope == error_mark_node) diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 22d7ba6..4dff139 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -16022,6 +16022,8 @@ cp_parser_using_declaration (cp_parser* parser, /*is_declaration=*/true); if (!qscope) qscope = global_namespace; + else if (UNSCOPED_ENUM_P (qscope)) + qscope = CP_TYPE_CONTEXT (qscope); if (access_declaration_p && cp_parser_error_occurred (parser)) /* Something has already gone wrong; there's no need to parse -- cgit v1.1