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)

Reply via email to