re PR fortran/60774 (f951: internal compiler error: Segmentation fault: 11)
authorSteven G. Kargl <kargl@gcc.gnu.org>
Mon, 22 Aug 2016 18:23:43 +0000 (18:23 +0000)
committerSteven G. Kargl <kargl@gcc.gnu.org>
Mon, 22 Aug 2016 18:23:43 +0000 (18:23 +0000)
2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
    Bud Davis  <jmdavis@link.com>

PR fortran/60774
* parse.c (next_free,next_fixed): Issue error for statement label
without a statement.

2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>

PR fortran/60774
* gfortran.dg/empty_label.f: Adjust test for new error message.
* gfortran.dg/empty_label.f90: Ditto.
* gfortran.dg/empty_label_typedecl.f90: Ditto.
* gfortran.dg/label_3.f90: Deleted (redundant with empty_label.f90).
* gfortran.dg/warnings_are_errors_1.f90: Remove invalid statement label.

Co-Authored-By: Bud Davis <jmdavis@link.com>
From-SVN: r239668

gcc/fortran/ChangeLog
gcc/fortran/parse.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/empty_label.f
gcc/testsuite/gfortran.dg/empty_label.f90
gcc/testsuite/gfortran.dg/empty_label_typedecl.f90
gcc/testsuite/gfortran.dg/label_3.f90 [deleted file]
gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90

index a7be7c6..3000e91 100644 (file)
@@ -1,4 +1,11 @@
 2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
+           Bud Davis  <jmdavis@link.com>
+
+       PR fortran/60774
+       * parse.c (next_free,next_fixed): Issue error for statement label
+       without a statement.
+
+2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR fortran/61318
        * interface.c (compare_parameter): Use better locus for error message.
index bd7b138..deba431 100644 (file)
@@ -1071,13 +1071,8 @@ next_free (void)
            }
 
          if (gfc_match_eos () == MATCH_YES)
-           {
-             gfc_warning_now (0, "Ignoring statement label in empty statement "
-                              "at %L", &label_locus);
-             gfc_free_st_label (gfc_statement_label);
-             gfc_statement_label = NULL;
-             return ST_NONE;
-           }
+           gfc_error_now ("Statement label without statement at %L",
+                          &label_locus);
        }
     }
   else if (c == '!')
@@ -1333,8 +1328,7 @@ next_fixed (void)
 
 blank_line:
   if (digit_flag)
-    gfc_warning_now (0, "Ignoring statement label in empty statement at %L",
-                    &label_locus);
+    gfc_error_now ("Statement label without statement at %L", &label_locus);
 
   gfc_current_locus.lb->truncated = 0;
   gfc_advance_line ();
index 9cc5fb5..013cee3 100644 (file)
@@ -1,5 +1,14 @@
 2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
 
+       PR fortran/60774
+       * gfortran.dg/empty_label.f: Adjust test for new error message.
+       * gfortran.dg/empty_label.f90: Ditto.
+       * gfortran.dg/empty_label_typedecl.f90: Ditto.
+       * gfortran.dg/label_3.f90: Deleted (redundant with empty_label.f90).
+       * gfortran.dg/warnings_are_errors_1.f90: Remove invalid statement label.
+
+2016-08-22  Steven G. Kargl  <kargl@gcc.gnu.org>
+
        PR fortran/61318
        * gfortran.dg/pr61318.f90: New test.
 
index fe16652..e66cb87 100644 (file)
@@ -1,7 +1,4 @@
 C { dg-do compile }
-C { dg-options "-Werror -fmax-errors=1" }
-100   ! { dg-error "empty statement" }
+100   ! { dg-error "Statement label without statement" }
       end
-subroutine foo ! Not checked ...
-end function ! ... but an error
-C { dg-excess-errors "warnings being treated as errors" }
+
index af067b5..eb7bc51 100644 (file)
@@ -1,7 +1,3 @@
 ! { dg-do compile }
-! { dg-options "-Werror -fmax-errors=1" }
-100   ! { dg-error "empty statement" }
+100   ! { dg-error "Statement label without statement" }
 end
-subroutine foo ! Not checked ...
-end function ! ... but an error
-! { dg-excess-errors "warnings being treated as errors" }
index c85e5be..d4e7f47 100644 (file)
@@ -1,8 +1,6 @@
 ! { dg-do compile }
-! { dg-options "-Werror" }
 subroutine s
   type t
-  1 ! { dg-error "empty statement" }
+  1 ! { dg-error "Statement label without statement" }
   end type
 end subroutine
-! { dg-excess-errors "warnings being treated as errors" }
diff --git a/gcc/testsuite/gfortran.dg/label_3.f90 b/gcc/testsuite/gfortran.dg/label_3.f90
deleted file mode 100644 (file)
index 5cebe93..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-! { dg-do compile }
-! PR fortran/25756.
-! This used to ICE due to the space after the label.
-1 ! { dg-warning "Ignoring statement label in empty statement" }
-end
index 6fcd29a..150f234 100644 (file)
@@ -20,8 +20,6 @@
 1234  complex :: cplx ! { dg-error "defined but cannot be used" }
       cplx = 20.
 
-! gfc_warning_now:
- 1 ! { dg-error "Ignoring statement label in empty statement" }
        end
 ! { dg-final { output-exists-not } }
 ! { dg-excess-errors "warnings being treated as errors" }