aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2016-08-22 18:23:43 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2016-08-22 18:23:43 +0000
commit58338bacdd63bfa128d5884e7ceeb47a4431d1ad (patch)
tree44b65a190f59341048102a9f33002562c72f04b0 /gcc
parent30364ce673723a466def350c7378ddd3cc0c6c87 (diff)
downloadgcc-58338bacdd63bfa128d5884e7ceeb47a4431d1ad.zip
gcc-58338bacdd63bfa128d5884e7ceeb47a4431d1ad.tar.gz
gcc-58338bacdd63bfa128d5884e7ceeb47a4431d1ad.tar.bz2
re PR fortran/60774 (f951: internal compiler error: Segmentation fault: 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/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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/fortran/ChangeLog7
-rw-r--r--gcc/fortran/parse.c12
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gfortran.dg/empty_label.f7
-rw-r--r--gcc/testsuite/gfortran.dg/empty_label.f906
-rw-r--r--gcc/testsuite/gfortran.dg/empty_label_typedecl.f904
-rw-r--r--gcc/testsuite/gfortran.dg/label_3.f905
-rw-r--r--gcc/testsuite/gfortran.dg/warnings_are_errors_1.f902
8 files changed, 23 insertions, 29 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index a7be7c6..3000e91 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -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.
diff --git a/gcc/fortran/parse.c b/gcc/fortran/parse.c
index bd7b138..deba431 100644
--- a/gcc/fortran/parse.c
+++ b/gcc/fortran/parse.c
@@ -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 ();
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 9cc5fb5..013cee3 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gfortran.dg/empty_label.f b/gcc/testsuite/gfortran.dg/empty_label.f
index fe16652..e66cb87 100644
--- a/gcc/testsuite/gfortran.dg/empty_label.f
+++ b/gcc/testsuite/gfortran.dg/empty_label.f
@@ -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" }
+
diff --git a/gcc/testsuite/gfortran.dg/empty_label.f90 b/gcc/testsuite/gfortran.dg/empty_label.f90
index af067b5..eb7bc51 100644
--- a/gcc/testsuite/gfortran.dg/empty_label.f90
+++ b/gcc/testsuite/gfortran.dg/empty_label.f90
@@ -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" }
diff --git a/gcc/testsuite/gfortran.dg/empty_label_typedecl.f90 b/gcc/testsuite/gfortran.dg/empty_label_typedecl.f90
index c85e5be..d4e7f47 100644
--- a/gcc/testsuite/gfortran.dg/empty_label_typedecl.f90
+++ b/gcc/testsuite/gfortran.dg/empty_label_typedecl.f90
@@ -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
index 5cebe93..0000000
--- a/gcc/testsuite/gfortran.dg/label_3.f90
+++ /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
diff --git a/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90 b/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90
index 6fcd29a..150f234 100644
--- a/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90
+++ b/gcc/testsuite/gfortran.dg/warnings_are_errors_1.f90
@@ -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" }