This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gfortran] PR 16404: Number 5 and 7


Paul Brook wrote:
> 
> Ok with that change.
> 
> Paul
> 

Here's what I committed after running the testsuite and verifying that
everything works as expected.

- Tobi

Index: ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/ChangeLog,v
retrieving revision 1.120
diff -u -p -r1.120 ChangeLog
--- ChangeLog   11 Jul 2004 13:35:32 -0000      1.120
+++ ChangeLog   11 Jul 2004 14:11:05 -0000
@@ -6,6 +6,12 @@

        PR fortran/16404
        * io.c (match_io): Flag 'WRITE(...), ...' as extension.
+
+       PR fortran/16404
+       * match.c (gfc_match_program): A program name is obligatory.
+       (gfc_match_return): RETURN in main program is an extension.
+       (gfc_match_block_data): A space is required before a block data
+       name.

 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>

Index: match.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/fortran/match.c,v
retrieving revision 1.17
diff -u -p -r1.17 match.c
--- match.c     10 Jul 2004 22:37:15 -0000      1.17
+++ match.c     11 Jul 2004 14:11:05 -0000
@@ -791,7 +791,7 @@ not_yes:
 /*********************** Statement level matching **********************/

 /* Matches the start of a program unit, which is the program keyword
-   followed by an optional symbol.  */
+   followed by an obligatory symbol.  */

 match
 gfc_match_program (void)
@@ -799,10 +799,6 @@ gfc_match_program (void)
   gfc_symbol *sym;
   match m;

-  m = gfc_match_eos ();
-  if (m == MATCH_YES)
-    return m;
-
   m = gfc_match ("% %s%t", &sym);

   if (m == MATCH_NO)
@@ -1897,6 +1893,13 @@ gfc_match_return (void)
 {
   gfc_expr *e;
   match m;
+  gfc_compile_state s;
+
+  gfc_enclosing_unit (&s);
+  if (s == COMP_PROGRAM
+      && gfc_notify_std (GFC_STD_GNU, "RETURN statement in a main "
+                        "program at %C is an extension.") == FAILURE)
+      return MATCH_ERROR;

   e = NULL;
   if (gfc_match_eos () == MATCH_YES)
@@ -2295,7 +2298,7 @@ gfc_match_block_data (void)
       return MATCH_YES;
     }

-  m = gfc_match (" %n%t", name);
+  m = gfc_match ("% %n%t", name);
   if (m != MATCH_YES)
     return MATCH_ERROR;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]