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.

Reply via email to