I intend to commit this patch in the next day or two
unless someone objects.

2016-07-28  Steven G. Kargl  <ka...@gcc.gnu.org>

        PR fortran/70006
        * io.c (gfc_resolve_dt): Use correct locus.
        * resolve.c (resolve_branch): Ditto.

2016-07-28  Steven G. Kargl  <ka...@gcc.gnu.org>

        PR fortran/70006
        * gfortran.dg/pr70006.f90: New test.

Index: gcc/fortran/io.c
===================================================================
--- gcc/fortran/io.c    (revision 238842)
+++ gcc/fortran/io.c    (working copy)
@@ -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;
     }
 
Index: gcc/fortran/resolve.c
===================================================================
--- gcc/fortran/resolve.c       (revision 238842)
+++ gcc/fortran/resolve.c       (working copy)
@@ -8966,7 +8966,7 @@ resolve_branch (gfc_st_label *label, gfc
   if (label->defined == ST_LABEL_UNKNOWN)
     {
       gfc_error ("Label %d referenced at %L is never defined", label->value,
-                &label->where);
+                &code->loc);
       return;
     }
 
Index: gcc/testsuite/gfortran.dg/pr70006.f90
===================================================================
--- gcc/testsuite/gfortran.dg/pr70006.f90       (nonexistent)
+++ gcc/testsuite/gfortran.dg/pr70006.f90       (working copy)
@@ -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
-- 
Steve

Reply via email to