parse.c (decode_statement): Suppress "Unclassifiable statement" error if previous...
authorSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 2 Jan 2019 19:13:29 +0000 (19:13 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Wed, 2 Jan 2019 19:13:29 +0000 (19:13 +0000)
2019-01-01  Steven G. Kargl  <kargl@gcc.gnu.org>

* parse.c (decode_statement):  Suppress "Unclassifiable statement"
error if previous error messages were emittes.

2019-01-01  Steven G. Kargl  <kargl@gcc.gnu.org>

* gfortran.dg/argument_checking_7.f90: Remove run-on error message.
* gfortran.dg/dec_d_lines_3.f: Ditto.
* gfortran.dg/dec_structure_24.f90: Ditto.
* gfortran.dg/dec_structure_26.f90: Ditto.
* gfortran.dg/dec_structure_27.f90: Ditto.
* gfortran.dg/dec_type_print_3.f90: Ditto.
* gfortran.dg/derived_name_1.f90: Ditto.
* gfortran.dg/error_recovery_1.f90: Ditto.
* gfortran.dg/gomp/pr29759.f90: Ditto.
* gfortran.dg/pr36192.f90: Ditto.
* gfortran.dg/pr56007.f90: Ditto.
* gfortran.dg/pr56520.f90: Ditto.
* gfortran.dg/pr78741.f90: Ditto.
* gfortran.dg/print_fmt_2.f90: Ditto.
* gfortran.dg/select_type_20.f90: Ditto.

From-SVN: r267526

18 files changed:
gcc/fortran/ChangeLog
gcc/fortran/parse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/argument_checking_7.f90
gcc/testsuite/gfortran.dg/dec_d_lines_3.f
gcc/testsuite/gfortran.dg/dec_structure_24.f90
gcc/testsuite/gfortran.dg/dec_structure_26.f90
gcc/testsuite/gfortran.dg/dec_structure_27.f90
gcc/testsuite/gfortran.dg/dec_type_print_3.f90
gcc/testsuite/gfortran.dg/derived_name_1.f90
gcc/testsuite/gfortran.dg/error_recovery_1.f90
gcc/testsuite/gfortran.dg/gomp/pr29759.f90
gcc/testsuite/gfortran.dg/pr36192.f90
gcc/testsuite/gfortran.dg/pr56007.f90
gcc/testsuite/gfortran.dg/pr56520.f90
gcc/testsuite/gfortran.dg/pr78741.f90
gcc/testsuite/gfortran.dg/print_fmt_2.f90
gcc/testsuite/gfortran.dg/select_type_20.f90

index 245772de244e1509dd0b4ed3cfb31f2c7e8e39f1..303892d893e630832e95bbc27b78e75ec0c93af1 100644 (file)
@@ -1,3 +1,8 @@
+2019-01-01  Steven G. Kargl  <kargl@gcc.gnu.org>
+
+       * parse.c (decode_statement):  Suppress "Unclassifiable statement"
+       error if previous error messages were emittes.
+
 2019-01-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/82743
index 399867be9bb9a07bcec067aa3ae9aadd69459233..6b33c57e873dc5a362c7c7ee20f9eff8fb8f31f0 100644 (file)
@@ -587,10 +587,16 @@ decode_statement (void)
     }
 
   /* All else has failed, so give up.  See if any of the matchers has
-     stored an error message of some sort.  */
-
+     stored an error message of some sort.  Suppress the "Unclassifiable
+     statement" if a previous error message was emitted, e.g., by
+     gfc_error_now ().  */
   if (!gfc_error_check ())
-    gfc_error_now ("Unclassifiable statement at %C");
+    {
+      int ecnt;
+      gfc_get_errors (NULL, &ecnt);
+      if (ecnt <= 0)
+        gfc_error_now ("Unclassifiable statement at %C");
+    }
 
   reject_statement ();
 
index 23691cd282de4db0a4654bc08ae6ac0f4b3df910..a5caf022d6714083039aac93dbc42566852b231d 100644 (file)
@@ -1,3 +1,21 @@
+2019-01-02  Steven G. Kargl  <kargl@gcc.gnu.org>
+       * gfortran.dg/argument_checking_7.f90: Remove run-on error message.
+       * gfortran.dg/dec_d_lines_3.f: Ditto.
+       * gfortran.dg/dec_structure_24.f90: Ditto.
+       * gfortran.dg/dec_structure_26.f90: Ditto.
+       * gfortran.dg/dec_structure_27.f90: Ditto.
+       * gfortran.dg/dec_type_print_3.f90: Ditto.
+       * gfortran.dg/derived_name_1.f90: Ditto.
+       * gfortran.dg/error_recovery_1.f90: Ditto.
+       * gfortran.dg/gomp/pr29759.f90: Ditto.
+       * gfortran.dg/pr36192.f90: Ditto.
+       * gfortran.dg/pr56007.f90: Ditto.
+       * gfortran.dg/pr56520.f90: Ditto.
+       * gfortran.dg/pr78741.f90: Ditto.
+       * gfortran.dg/print_fmt_2.f90: Ditto.
+       * gfortran.dg/select_type_20.f90: Ditto.
+
 2019-01-02  Marek Polacek  <polacek@redhat.com>
 
        PR c++/86875
index 0bf76cbb4516e4497fa566eba3e209b42032684d..45fd51dc1401ab2ccf2b880bd12bea17c8bcfab1 100644 (file)
@@ -12,7 +12,7 @@ module cyclic
       character(len(y)-1) ouch ! { dg-error "used before it is typed" }
       integer i
       do i = 1, len(ouch)
-        ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i)))) ! { dg-error "Unclassifiable statement" }
+        ouch(i:i) = achar(ieor(iachar(x(i:i)),iachar(y(i:i))))
       end do
       end function ouch
 end module cyclic
index 2df4341c0e483c514ecf57a7fce432b326e53053..1e96d750dfbdd7a42ca4c0f2b91ca214d63b8243 100644 (file)
@@ -9,6 +9,4 @@
 include 'dec_d_lines_2.f'
 
 ! { dg-error "character in statement label" " " { target *-*-*} 6 }
-! { dg-error "Unclassifiable statement" " " { target *-*-*} 6 }
 ! { dg-error "character in statement label" " " { target *-*-*} 7 }
-! { dg-error "Unclassifiable statement" " " { target *-*-*} 7 }
index 02842b315dceabd1f764165ab8ff966f7f0d4a92..b4da5eea92dd8970f93bddec409edaa26a66da51 100644 (file)
@@ -12,10 +12,6 @@ include 'dec_structure_1.f90'
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 21 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 22 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 }
 ! { dg-error "is not a variable" " " { target *-*-* } 30 }
 ! { dg-error "Bad character" " " { target *-*-* } 32 }
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 }
index 7829103b995235eb02e0ff13fa867df8449d665c..b7c8aae466ea3b1cbea46d70084052d1e34ff216 100644 (file)
@@ -14,10 +14,6 @@ include 'dec_structure_1.f90'
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 21 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 22 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 }
 ! { dg-error "is not a variable" " " { target *-*-* } 30 }
 ! { dg-error "Bad character" " " { target *-*-* } 32 }
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 }
index 1257365deb86d791cc8b8cdda4110d38ef577f80..ed976fcecea40b6ed5fd3d131bb89a9d0d1820ae 100644 (file)
@@ -14,10 +14,6 @@ include 'dec_structure_1.f90'
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 19 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 21 }
 ! { dg-error "-fdec-structure" " " { target *-*-* } 22 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 25 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 26 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 27 }
-! { dg-error "Unclassifiable statement" " " { target *-*-* } 28 }
 ! { dg-error "is not a variable" " " { target *-*-* } 30 }
 ! { dg-error "Bad character" " " { target *-*-* } 32 }
 ! { dg-error "Expecting END PROGRAM" " " { target *-*-* } 34 }
index f766bdf0022383967d6fcd60658576f055b406cf..e5b455eea26df50e52d83028f96d342db14eb9bb 100644 (file)
@@ -15,7 +15,6 @@ include 'dec_type_print.f90'
 ! { dg-error "Invalid character in name" "" { target *-*-* } 56 }
 ! { dg-error "Invalid character in name" "" { target *-*-* } 57 }
 ! { dg-error "Invalid character in name" "" { target *-*-* } 58 }
-! { dg-error "Unclassifiable statement" "" { target *-*-* } 59 }
 ! { dg-error "conflicts with PROCEDURE" "" { target *-*-* } 60 }
 ! { dg-error "Cannot assign to a named constant" "" { target *-*-* } 80 }
 
index 9c6b1775d11d72e0f252d6c9144528640935e20b..32a76ed7cf3a8d4155574cda8351bf21211419fe 100644 (file)
@@ -7,9 +7,9 @@ type complex ! { dg-error "cannot be the same as an intrinsic type" }
 type character ! { dg-error "cannot be the same as an intrinsic type" }
 type logical ! { dg-error "cannot be the same as an intrinsic type" }
 type complex ! { dg-error "cannot be the same as an intrinsic type" }
-type double precision ! { dg-error "Unclassifiable statement" }
+type double precision
 type doubleprecision ! { dg-error "cannot be the same as an intrinsic type" }
-type double complex ! { dg-error "Unclassifiable statement" }
+type double complex
 type doublecomplex ! { dg-error "cannot be the same as an intrinsic type" }
 
 type x
index 8d4f65baff979d1eb4f7e47dd0af4efa80ce9cbc..7f19ab51e50f097441261ac21c581c7d9ed9c882 100644 (file)
@@ -10,6 +10,6 @@ module gfcbug29_import
 end module gfcbug29_import
 
 subroutine FOO
-    X :: I ! { dg-error "Unclassifiable statement" }
+    X :: I
     equivalence (I,I)
 end
index b723eeb3c76e38cd0b0761ccb27a8ad713a10624..39c59c5e0ffb902a6a4a99c03c75df81c66edf5c 100644 (file)
@@ -22,21 +22,21 @@ PROGRAM test_omp
 
 
 !$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
-!$    NUM_THREADS(2)           ! { dg-error "Unclassifiable|Invalid character" }
+!$    NUM_THREADS(2)
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
 !$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
-!$    & NUM_THREADS(2)         ! { dg-error "Unclassifiable|Invalid character" }
+!$    & NUM_THREADS(2)         ! { dg-error "Invalid character" }
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
 !$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
 !
-!$    NUM_THREADS(2)           ! { dg-error "Unclassifiable|Invalid character" }
+!$    NUM_THREADS(2)
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
 !$OMP PARALLEL &               ! { dg-error "Unclassifiable OpenMP" }
 !
-!$    & NUM_THREADS(2)         ! { dg-error "Unclassifiable|Invalid character" }
+!$    & NUM_THREADS(2)         ! { dg-error "Invalid character" }
 !$OMP END PARALLEL             ! { dg-error "Unexpected" }
 
 END PROGRAM
index ebf95e35bfecad138eaca38bb9f1a499bf8ae540..7ff53155b27195feb317459876dd8acebd11983d 100644 (file)
@@ -4,5 +4,5 @@
 program three_body
   real, parameter :: n = 2, d = 2
   real, dimension(n,d) :: x  ! { dg-error "Expecting a scalar INTEGER" }
-  x(1,:) = (/ 1.0, 0.0 /)    ! { dg-error "Unclassifiable" }
+  x(1,:) = (/ 1.0, 0.0 /)
 end program three_body
index b91baf5b4e7c64e0be26091180ddf1477adfae16..e6f0e9c0f0f137ca9cbd427f28e28aeae5bc17e9 100644 (file)
@@ -5,7 +5,7 @@
   integer iw1(90), doiw1(90)
   do iw1=1,2     ! { dg-error "cannot be an array" }
   end do         ! { dg-error "Expecting END PROGRAM statement" }
-  do iw1(1)=1    ! { dg-error "Unclassifiable statement" }
+  do iw1(1)=1
   do iw1=1       ! { dg-error "cannot be an array" }
   end do         ! { dg-error "Expecting END PROGRAM statement" }
 END program
index b074b8024ca82b38957e1ed57cb3fd94a3fb35b8..82bd7f9959a182e0444dfd6aa2366f78875a451a 100644 (file)
@@ -6,8 +6,8 @@ program misleading
     real a, c
     a = 1.0
     c = exp(+a) )    ! { dg-error "Unclassifiable statement" }
-    c = exp(-a) )    ! { dg-error "Unclassifiable statement" }
-    c = exp((a)) )   ! { dg-error "Unclassifiable statement" }
-    c = exp(a) )     ! { dg-error "Unclassifiable statement" }
+    c = exp(-a) )
+    c = exp((a)) )
+    c = exp(a) )
     c = exp(a)
 end program misleading
index 707b2996307aaa21ea44cf81e6a66c4c8f657ab5..6eb85789f942935d8247139b9668035b4dfa2f46 100644 (file)
@@ -11,6 +11,6 @@ entry g(n, x)           ! { dg-error "is already defined" }
    x = 'b'
 contains
    subroutine g         ! { dg-error "(1)" }
-      z(1) = x(1:1) ! { dg-error "Unclassifiable statement" }
+      z(1) = x(1:1)
    end
 end
index c7a5cc146140e7f4355919df311fd0844a6383b0..f194c11e26121c72ad299434c9baa7062175ef96 100644 (file)
@@ -7,5 +7,5 @@ real  x
 namelist /mynml/ x
 printf, "check" ! { dg-error "Unclassifiable" }
 x = 1
-printmynml ! { dg-error "" }
+printmynml
 end
index a247f7b0cfb5cf745b4ee66c27e7bca713670c85..65087a9b96fd7de1637751ecb80b9923299a241e 100644 (file)
@@ -15,21 +15,21 @@ module gfcbug111
 
 contains
 
-  function my_dot_v_v (this,a,b) ! { dg-error "has no IMPLICIT type" }
+  function my_dot_v_v (this,a,b)       ! { dg-error "has no IMPLICIT type" }
     class(trivial_inner_product_type), intent(in) :: this
     class(vector_class),               intent(in) :: a,b ! { dg-error "Derived type" }
     real :: my_dot_v_v
 
-    select type (a)
-    class is (trivial_vector_type) ! { dg-error "Syntax error in CLASS IS" }
-       select type (b) ! { dg-error "Expected TYPE IS" }
-       class is (trivial_vector_type) ! { dg-error "Syntax error in CLASS IS" }
+    select type (a)                    ! { dg-error "Selector shall be polymorphic" }
+    class is (trivial_vector_type)     ! { dg-error "Syntax error in CLASS IS" }
+       select type (b)                 ! { dg-error "Expected TYPE IS" }
+       class is (trivial_vector_type)  ! { dg-error "Syntax error in CLASS IS" }
        class default
        end select
-    class default ! { dg-error "Unclassifiable statement" }
+    class default 
     end select ! { dg-error "Expecting END FUNCTION" }
   end function my_dot_v_v
 end module gfcbug111
 
 select type (a)
-! { dg-excess-errors "Unexpected end of file" }
+! { dg-prune-output "Unexpected end of file" }