From 0426c4ca869f62525e807d8fc1bff9a983780308 Mon Sep 17 00:00:00 2001 From: Scott Brumbaugh Date: Mon, 12 Jan 2004 16:14:41 +0000 Subject: [PATCH] re PR c++/4100 ([parser] friend qualifier accepted in definition of nested class) PR c++/4100 * parser.c (cp_parser_decl_specifier_seq): Add check for a friend decl-specifier occurring along with a class definition. From-SVN: r75726 --- gcc/cp/ChangeLog | 6 ++++++ gcc/cp/parser.c | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a8b4781..48d831e 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-01-12 Scott Brumbaugh + + PR c++/4100 + * parser.c (cp_parser_decl_specifier_seq): Add check for a friend + decl-specifier occurring along with a class definition. + 2004-01-12 Ian Lance Taylor * parser.c (cp_parser_decl_specifier_seq): Add parenthetical diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 8660126..fe3a3de 100644 --- a/gcc/cp/parser.c +++ b/gcc/cp/parser.c @@ -6726,6 +6726,10 @@ cp_parser_decl_specifier_seq (cp_parser* parser, flags |= CP_PARSER_FLAGS_OPTIONAL; } + /* Don't allow a friend specifier with a class definition. */ + if (friend_p && (*declares_class_or_enum & 2)) + error ("class definition may not be declared a friend"); + /* We have built up the DECL_SPECS in reverse order. Return them in the correct order. */ return nreverse (decl_specs); -- 2.7.4