diagnostic-show-locus: tweak rejection logic
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 3 Jun 2021 14:32:40 +0000 (10:32 -0400)
committerDavid Malcolm <dmalcolm@redhat.com>
Thu, 3 Jun 2021 14:32:40 +0000 (10:32 -0400)
gcc/ChangeLog:
* diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
printing the same location twice if there are fix-it hints,
multiple locations, or a label.

Signed-off-by: David Malcolm <dmalcolm@redhat.com>
gcc/diagnostic-show-locus.c

index 4111cd6..24bd031 100644 (file)
@@ -2600,9 +2600,11 @@ diagnostic_show_locus (diagnostic_context * context,
     return;
 
   /* Don't print the same source location twice in a row, unless we have
-     fix-it hints.  */
+     fix-it hints, or multiple locations, or a label.  */
   if (loc == context->last_location
-      && richloc->get_num_fixit_hints () == 0)
+      && richloc->get_num_fixit_hints () == 0
+      && richloc->get_num_locations () == 1
+      && richloc->get_range (0)->m_label == NULL)
     return;
 
   context->last_location = loc;