On Mon, 11 Jul 2022, Lewis Hyatt via Gcc-patches wrote: > Hello- > > As discussed here: > https://gcc.gnu.org/pipermail/gcc-patches/2022-July/598136.html > > Here is another short patch that improves "#pragma GCC diagnostic" handling. > Longer term, it will be desirable to make the handling of this pragma > independent of the global input_location. But in the meantime, some glitches > like this one can be readily addressed by making input_location point to > something better. In this case, input_location during preprocessing (-E or > -save-temps) is made to point to the most recently seen token rather than the > beginning of the file. To the best of my knowledge, nothing else besides > "#pragma GCC diagnostic" handling can observe input_location during > token streaming, so this is expected not to have any other > repercussions. Bootstrap + regtest does look clean on x86-64 Linux. > > By the way, the new testcase fails when compiled with C++, but it's not > because of pragma handling, it's rather because the C++ frontend changes the > location on the warning to the wrong place. Once done_lexing has been set to > true, it changes the location of all warnings to input_location, however > that's not correct when the location is the cached location of a macro > definition; the original location is preferable. I will file a separate PR > about that, and have xfailed that testcase for now, since I am not quite there > with grokking the reason it behaves this way, and anyway it's not related to > this 1-line fix for gcc -E. > > Please let me know how it looks? Thanks!
OK. -- Joseph S. Myers jos...@codesourcery.com