https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87757
David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org --- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> --- The second ADDR_EXPR's location is wrong; it's the location of the whole of the function call: 8 | __builtin_sprintf (e, "%s", &a[0]); | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ rather than just of the 2nd argument, and this leads to the strange colorization. The bogus location is coming from here in gimplify.c: 3130 /* FIXME diagnostics: This will mess up gcc.dg/Warray-bounds.c. */ 3131 /* Make sure arguments have the same location as the function call 3132 itself. */ 3133 protected_set_expr_location (*arg_p, call_location); which came from commits by Aldy in 2008 and 2009: r140917 (aka 489c40889c8be89bd5bed4b166974f8c1e01e4ee) and r148442 (aka e60a6f7b6c12183ca32dfe2876f09f4b4f4f69c1)