https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79476
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Julian Andres Klode from comment #0) > According to cpp, all functions expand to the same code. The difference is where the _Pragma is handled. > This used to work at some point a long time ago, but I can't remember when. I don't think so. Until GCC 4.6 you couldn't use the diagnostic pragmas inside functions, and since 4.6 it has failed to disable the warnings. This is probably a dup of one of the bugs that PR 78657 links to.