Skip to content
Snippets Groups Projects
Commit 851031b2 authored by Marek Polacek's avatar Marek Polacek
Browse files

c++: global-namespace-qualified var after class def [PR90107]

Here we wrongly reject the definition of "::N::a"

  struct A;
  namespace N { extern A a; }
  struct A {} ::N::a;

because our code to diagnose a missing ; after a class definition doesn't
realize that :: can follow a class definition.

	PR c++/90107

gcc/cp/ChangeLog:

	* parser.cc (cp_parser_class_specifier_1): Accept :: after a class
	definition.

gcc/testsuite/ChangeLog:

	* g++.dg/parse/qualified6.C: New test.
parent 4e117418
No related branches found
No related tags found
No related merge requests found
...@@ -25933,6 +25933,7 @@ cp_parser_class_specifier_1 (cp_parser* parser) ...@@ -25933,6 +25933,7 @@ cp_parser_class_specifier_1 (cp_parser* parser)
case CPP_OPEN_PAREN: case CPP_OPEN_PAREN:
case CPP_CLOSE_PAREN: case CPP_CLOSE_PAREN:
case CPP_COMMA: case CPP_COMMA:
case CPP_SCOPE:
want_semicolon = false; want_semicolon = false;
break; break;
   
// PR c++/90107
// { dg-do compile }
struct A;
namespace N { extern A a; }
struct A {} ::N::a;
struct A1;
struct B { static A1 a1; };
struct A1 {} ::B::a1;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment