llvm-project
llvm-project copied to clipboard
-Wno-unknown-pragmas doesn't work with clang-cl -Xclang -Wall
There is some inconsistency in how the clang-cl driver handles -Wno-unknown-pragmas:
$ echo "#pragma deprecated(foo)" > foo.h
$ clang-cl -W3 foo.h
foo.h(1,9): warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma deprecated(foo)
^
1 warning generated.
$ clang-cl -W3 -Wno-unknown-pragmas foo.h
$ clang-cl -Xclang -Wall foo.h
foo.h(1,9): warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma deprecated(foo)
^
1 warning generated.
$ clang-cl -Xclang -Wall -Wno-unknown-pragmas foo.h
foo.h(1,9): warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma deprecated(foo)
^
1 warning generated.
$ clang-cl -Xclang -Wall -Xclang -Wno-unknown-pragmas foo.h
For some reason, -Wno-unknown-pragmas doesn't work with -Xclang -Wall
I haven't checked whether this applies to other flags.
Why are you using -Xclang at all here, for -Wall or -Wno-unknown-pragmas?
@llvm/issue-subscribers-clang-driver
Because -Wall in clang-cl means -Weverything. -W3 is -Wall, but for some reason, we were also using -Xclang -Wall.