------- Comment #1 from burnus at gcc dot gnu dot org  2007-04-04 18:47 -------
Accepted. Thanks for the report.

We do check for this but only for the PRIVATE/PUBLIC attribute and not for the
PUBLIC/PRIVATE statement.

Patch:

Index: gcc/fortran/decl.c
===================================================================
--- gcc/fortran/decl.c  (Revision 123494)
+++ gcc/fortran/decl.c  (Arbeitskopie)
@@ -3916,6 +3916,13 @@
   if (gfc_match ("private") != MATCH_YES)
     return MATCH_NO;

+  if (gfc_current_state () != COMP_MODULE)
+    {
+      gfc_error ("PRIVATE statement at %C is not allowed outside of "
+                "a module");
+      return MATCH_ERROR;
+    }
+
   if (gfc_current_state () == COMP_DERIVED)
     {
       if (gfc_match_eos () == MATCH_YES)
@@ -3946,6 +3953,13 @@
   if (gfc_match ("public") != MATCH_YES)
     return MATCH_NO;

+  if (gfc_current_state () != COMP_MODULE)
+    {
+      gfc_error ("PUBLIC statement at %C is not allowed outside of "
+                "a module");
+      return MATCH_ERROR;
+    }
+
   if (gfc_match_eos () == MATCH_YES)
     {
       *st = ST_PUBLIC;


-- 

burnus at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |burnus at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
           Keywords|                            |accepts-invalid
   Last reconfirmed|0000-00-00 00:00:00         |2007-04-04 18:47:11
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31472

Reply via email to