OSDN Git Service

PR c++/4100
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 16:14:41 +0000 (16:14 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 12 Jan 2004 16:14:41 +0000 (16:14 +0000)
* parser.c (cp_parser_decl_specifier_seq): Add check for a friend
decl-specifier occurring along with a class definition.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75726 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/parser.c

index a8b4781..48d831e 100644 (file)
@@ -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
index 8660126..fe3a3de 100644 (file)
@@ -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);