https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89038
Bug ID: 89038 Summary: #pragma GCC diagnostic ignored "-Wunknown-pragmas" does not work Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor Assignee: unassigned at gcc dot gnu.org Reporter: ulidtko at gmail dot com Target Milestone: --- Consider this test.cxx file: -------------------------------8<-------------------------------- #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wpragmas" #pragma GCC diagnostic ignored "-Wunknown-pragmas" // this gets silenced correctly (by line 2) #pragma GCC diagnostic ignored "-Wfoobar-unknown-gcc-pragma" // this still emits "-Wunknown-pragmas", despite line 3 #pragma clang diagnostic ignored "-Wfoobar-unknown-clang-pragma" int main() {} #pragma GCC diagnostic pop -------------------------------8<-------------------------------- g++ -Wall -Werror test.cxx test.cxx:9:0: error: ignoring #pragma clang diagnostic [-Werror=unknown-pragmas] #pragma clang diagnostic ignored "-Wfoobar-unknown-clang-pragma" This happens despite the fact that "-Wunknown-pragmas" is explicitly silenced in line 3. Adding -Wno-unknown-pragmas to the command line works as expected; however, I expect the in-source #pragma to work as well. But it doesn't. g++ (GCC) 7.2.1 20180104 (Red Hat 7.2.1-5) Bug #53431 seems closely related.