I am working on a project that uses code from another project, and that other code is giving me a bunch of warnings during compilation. I don't want to change that code (my project is just a thin wrapper around their code and I want to be able to pull in updates without patching all the time) so I'd like to disable these warnings so I can focus on just my own code.
Unfortunately I can't see where this is documented!
The error I am receiving is:
warning: no case matching constant switch condition '2'
I have looked in the manual and tried -Wno-switch
, -Wno-switch-bool
and -Wno-switch-enum
but none of them make this warning go away. I can't see where in the manual this warning message is listed.
Using Google I haven't been able to find any command-line option that matches up with the error text.
Using GitHub I was able to find the LLVM source that runs a test for this warning but I'm not having any luck mapping that back to a -W
option to disable it.
What am I missing?
Here is some code that reproduces the error:
enum En { A, B, C };
template <En how> void foo() {
int x = 0, y = 5;
switch (how) {
case A: x *= y; break;
case B: x += y; break;
}
}
template void foo<C>();
int main(void)
{
return 0;
}
I'm afraid there is no -Wno-<what>
flag that can specifically suppress this warning.
If there was, then the diagnostic would be:
warning: no case matching constant switch condition '2' [-W<what>]
You can only suppress it by suppressing all warnings, with -Wno-everything
,
which of course I would not advise.