aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteven G. Kargl <kargl@gcc.gnu.org>2016-07-30 18:18:49 +0000
committerSteven G. Kargl <kargl@gcc.gnu.org>2016-07-30 18:18:49 +0000
commitb6cb9b06f25129202a6dbe827cf4a74b23ff1dc0 (patch)
treea3a0ed6a9fcbc3e86119faa3baa064ae94db7fbe
parent4964b40cd05ce78674fba3f1db7f4c8e1879ebb0 (diff)
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
PR fortran/70006 * io.c (gfc_resolve_dt): Use correct locus. * resolve.c (resolve_branch): Ditto. 2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/70006 * gfortran.dg/pr70006.f90: New test. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@238905 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/fortran/ChangeLog6
-rw-r--r--gcc/fortran/io.c2
-rw-r--r--gcc/fortran/resolve.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gfortran.dg/pr70006.f909
5 files changed, 22 insertions, 2 deletions
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 775276bc5c2..3c137ee199f 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,5 +1,11 @@
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/70006
+ * io.c (gfc_resolve_dt): Use correct locus.
+ * resolve.c (resolve_branch): Ditto.
+
+2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/71730
* decl.c (char_len_param_value): Check return value of
gfc_reduce_init_expr().
diff --git a/gcc/fortran/io.c b/gcc/fortran/io.c
index 7c648e93cad..08812613aec 100644
--- a/gcc/fortran/io.c
+++ b/gcc/fortran/io.c
@@ -3052,7 +3052,7 @@ gfc_resolve_dt (gfc_dt *dt, locus *loc)
&& dt->format_label->defined == ST_LABEL_UNKNOWN)
{
gfc_error ("FORMAT label %d at %L not defined", dt->format_label->value,
- &dt->format_label->where);
+ loc);
return false;
}
diff --git a/gcc/fortran/resolve.c b/gcc/fortran/resolve.c
index 23da9ac4444..e0a688a76b2 100644
--- a/gcc/fortran/resolve.c
+++ b/gcc/fortran/resolve.c
@@ -8966,7 +8966,7 @@ resolve_branch (gfc_st_label *label, gfc_code *code)
if (label->defined == ST_LABEL_UNKNOWN)
{
gfc_error ("Label %d referenced at %L is never defined", label->value,
- &label->where);
+ &code->loc);
return;
}
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index d41cfcaa6c3..6ead1195b38 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
+ PR fortran/70006
+ * gfortran.dg/pr70006.f90: New test.
+
+2016-07-30 Steven G. Kargl <kargl@gcc.gnu.org>
+
PR fortran/71730
* gfortran.dg/pr71730.f90: New test.
* gfortran.dg/bounds_check_strlen_2.f90: Fix invalid code.
diff --git a/gcc/testsuite/gfortran.dg/pr70006.f90 b/gcc/testsuite/gfortran.dg/pr70006.f90
new file mode 100644
index 00000000000..b8fbb3c26ee
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/pr70006.f90
@@ -0,0 +1,9 @@
+! { dg-do compile}
+program test
+ print 1, 'string 1' ! { dg-error "FORMAT label 1" " " { target *-*-* } 3 }
+ print 1, 'string 2' ! { dg-error "FORMAT label 1" " " { target *-*-* } 4 }
+!1 format(a)
+ goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } 6 }
+ goto 2 ! { dg-error "Label 2 referenced" " " { target *-*-* } 7 }
+!2 continue
+end program