Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to trunk as 4bdc6e17c9dc621f9502a84abceb2e17ae0418f8.

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 <dmalc...@redhat.com>
---
 gcc/diagnostic-show-locus.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/diagnostic-show-locus.c b/gcc/diagnostic-show-locus.c
index 4111cd66544..24bd0313126 100644
--- a/gcc/diagnostic-show-locus.c
+++ b/gcc/diagnostic-show-locus.c
@@ -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;
-- 
2.26.3

Reply via email to