https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94127
--- Comment #2 from Aleksey Covacevice <aleksey.covacevice at gmail dot com> --- (In reply to Jonathan Wakely from comment #1) > I think it's intended. > > You should put the pragma after including other headers if you don't want > them to be affected. What does the pragma have to do with *any* of the other include files, specially considering that `usr.h` has been included from the main source file in the example?