OSDN Git Service

2010-06-25 Tobias Burnus <burnus@net-b.de>
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jun 2010 19:01:04 +0000 (19:01 +0000)
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 25 Jun 2010 19:01:04 +0000 (19:01 +0000)
        * parse.c (next_free, next_fixed): Allow ";" as first character.

2010-06-25  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/semicolon_fixed.f: Update.
        * gfortran.dg/semicolon_fixed_2.f: New.
        * gfortran.dg/semicolon_free_2.f90: New.
        * gfortran.dg/semicolon_free.f90: Update.

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

gcc/fortran/ChangeLog
gcc/fortran/parse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/semicolon_fixed.f
gcc/testsuite/gfortran.dg/semicolon_fixed_2.f [new file with mode: 0644]
gcc/testsuite/gfortran.dg/semicolon_free.f90
gcc/testsuite/gfortran.dg/semicolon_free_2.f90 [new file with mode: 0644]

index e887e6f..b635aec 100644 (file)
@@ -1,3 +1,7 @@
+2010-06-25  Tobias Burnus  <burnus@net-b.de>
+
+       * parse.c (next_free, next_fixed): Allow ";" as first character.
+
 2010-06-24  Tobias Burnus  <burnus@net-b.de>
 
        PR fortran/44614
index 26ea73a..50f7957 100644 (file)
@@ -717,7 +717,9 @@ next_free (void)
  
   if (at_bol && c == ';')
     {
-      gfc_error_now ("Semicolon at %C needs to be preceded by statement");
+      if (!(gfc_option.allow_std & GFC_STD_F2008))
+       gfc_error_now ("Fortran 2008: Semicolon at %C without preceding "
+                      "statement");
       gfc_next_ascii_char (); /* Eat up the semicolon.  */
       return ST_NONE;
     }
@@ -853,7 +855,11 @@ next_fixed (void)
 
   if (c == ';')
     {
-      gfc_error_now ("Semicolon at %C needs to be preceded by statement");
+      if (digit_flag)
+       gfc_error_now ("Semicolon at %C needs to be preceded by statement");
+      else if (!(gfc_option.allow_std & GFC_STD_F2008))
+       gfc_error_now ("Fortran 2008: Semicolon at %C without preceding "
+                      "statement");
       return ST_NONE;
     }
 
index a5d0510..85cb46b 100644 (file)
@@ -1,3 +1,10 @@
+2010-06-25  Tobias Burnus  <burnus@net-b.de>
+
+       * gfortran.dg/semicolon_fixed.f: Update.
+       * gfortran.dg/semicolon_fixed_2.f: New.
+       * gfortran.dg/semicolon_free_2.f90: New.
+       * gfortran.dg/semicolon_free.f90: Update.
+
 2010-06-25  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 
        PR fortran/44448
@@ -57,7 +64,7 @@
 
 2010-06-24  Andi Kleen  <ak@linux.intel.com>
 
-        * c-c++-common/warn-omitted-condop.c: New.
+       * c-c++-common/warn-omitted-condop.c: New.
 
 2010-06-24  Tobias Burnus  <burnus@net-b.de>
 
index 2c667ae..1629764 100644 (file)
@@ -1,9 +1,11 @@
 ! { dg-do compile }
-! PR 19259 Semicolon cannot start a line
+! { dg-do options "-std=f2003" }
+!
+! PR 19259 Semicolon cannot start a line (in F2003)
       x=1; y=1;
       x=2;;
       x=3;
-      ;                         ! { dg-error "Semicolon at" }
-      ;;                        ! { dg-error "Semicolon at" }
+      ;                         ! { dg-error "Fortran 2008: Semicolon at" }
+      ;;                        ! { dg-error "Fortran 2008: Semicolon at" }
  900  ;                         ! { dg-error "Semicolon at" }
       end
diff --git a/gcc/testsuite/gfortran.dg/semicolon_fixed_2.f b/gcc/testsuite/gfortran.dg/semicolon_fixed_2.f
new file mode 100644 (file)
index 0000000..d4f3862
--- /dev/null
@@ -0,0 +1,12 @@
+! { dg-do compile }
+! { dg-do options "-std=f2008" }
+
+! PR 19259 Semicolon cannot start a line
+! but it F2008 it can!
+      x=1; y=1;
+      x=2;;
+      x=3;
+      ;                         ! OK
+      ;;                        ! OK
+ 900  ;                         ! { dg-error "Semicolon at" }
+      end
index 28e8da2..4d05d83 100644 (file)
@@ -1,4 +1,5 @@
 ! { dg-do compile }
+! { dg-options "-std=f2003" }
 ! PR 19259 Semicolon cannot start a line
 x=1; y=1;
 x=2;;
diff --git a/gcc/testsuite/gfortran.dg/semicolon_free_2.f90 b/gcc/testsuite/gfortran.dg/semicolon_free_2.f90
new file mode 100644 (file)
index 0000000..2fae26e
--- /dev/null
@@ -0,0 +1,10 @@
+! { dg-do compile }
+! { dg-options "-std=f2008" }
+! PR 19259 Semicolon cannot start a line
+x=1; y=1;
+x=2;;
+x=3;
+ ; ! OK
+;; ! OK
+111 ; ! { dg-error "Semicolon at" }
+end