Originally, the idea about checking for missing location information
when not configured for release is to catch errors when adding new
code, so forgetting to add the info will show up right away on
regression testing.

From time to time, a user can stumble across something like that
and get a confusing error message.  This tries to make sure
people don't mistake this for their own error.

Committed as obvious, r265559. No test case because... well, this
is not supposed to happen in the first place.

Regards

        Thomas

2018-10-27  Thomas Koenig  <tkoe...@gcc.gnu.org>

        PR fortran/86907
        * frontend-passes.c (check_locus_code): Add information that
        warning about missing location information points to an
        inconsisten internal state.
        (check_locus_expr): Likewise.

Index: frontend-passes.c
===================================================================
--- frontend-passes.c	(Revision 265502)
+++ frontend-passes.c	(Arbeitskopie)
@@ -190,7 +190,8 @@ check_locus_code (gfc_code **c, int *walk_subtrees
 {
   current_code = c;
   if (c && *c && (((*c)->loc.nextc == NULL) || ((*c)->loc.lb == NULL)))
-    gfc_warning_internal (0, "No location in statement");
+    gfc_warning_internal (0, "Inconsistent internal state: "
+			  "No location in statement");
 
   return 0;
 }
@@ -205,7 +206,8 @@ check_locus_expr (gfc_expr **e, int *walk_subtrees
 {
 
   if (e && *e && (((*e)->where.nextc == NULL || (*e)->where.lb == NULL)))
-    gfc_warning_internal (0, "No location in expression near %L",
+    gfc_warning_internal (0, "Inconsistent internal state: "
+			  "No location in expression near %L",
 			  &((*current_code)->loc));
   return 0;
 }

Reply via email to