diff options
author | Scott Brumbaugh <scottb.lists@verizon.net> | 2004-01-12 16:14:41 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@wasabisystems.com> | 2004-01-12 16:14:41 +0000 |
commit | 00f2f723614a6b4fc3b2bd7a518185a64983868b (patch) | |
tree | 463b8787bb575c71cc03d101c85cdc09526be242 | |
parent | 5dac057d81687fa20ed8df295160050e2d6b24f0 (diff) |
PR c++/4100
* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
decl-specifier occurring along with a class definition.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@75726 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/cp/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/cp/parser.c | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index a8b4781ac44..48d831ecb63 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2004-01-12 Scott Brumbaugh <scottb.lists@verizon.net> + + 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 <ian@wasabisystems.com> * parser.c (cp_parser_decl_specifier_seq): Add parenthetical diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c index 866012644ce..fe3a3dec965 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); |