https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69126

--- Comment #10 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Hence I *think* the issue here is that the locations of the tokens within
libcpp/directives.c:destringize_and_run don't respect macro expansions, leading
to the strange location for the ignore directive that is slightly after the
relevant macro expansion.

However, that function is full of comments like
  /* Ugh; an awful kludge.  We are really not set up to be lexing
and:
  /* ??? Antique Disgusting Hack.  What does this do?  */
and the like, so am not sure I want to touch it...

Perhaps this could be papered over by reverting r226234, but that would regress
the removal of %q+D mentioned in comment #7, and there are presumably other
ways to combine _Pragma and macros that would show up issues this way (though
these behaviors are presumably already present in earlier gcc releases).

Reply via email to