[cfe-dev] Does `#pragma GCC diagnostic warning` intentionally win over -Werror?

Nico Weber via cfe-dev cfe-dev at lists.llvm.org
Thu Jan 24 06:55:42 PST 2019

Re "intentional?", it matches gcc which explicitly documents on
https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html that the pragma
wins over -Werror.

Does anyone know if there's a flag that says "I want all warnings to be
errors, not just most of them"?

If there isn't one yet, what would be a good UI for that?

On Wed, Jan 23, 2019 at 11:11 PM Nico Weber <thakis at chromium.org> wrote:

> Consider:
> $ cat test.cc
> #pragma GCC diagnostic warning "-Wsign-compare"
> bool f(int a, unsigned b) {
>   return a != b;
> }
> $ out/gn/bin/clang -c test.cc -Werror
> test.cc:4:12: warning: comparison of integers of different signs: 'int'
> and 'unsigned int' [-Wsign-compare]
>   return a != b;
>          ~ ^  ~
> 1 warning generated.
> I found it surprising that this is emitted as a warning, not as an error.
> If this is intentional, is there some other way to say "I want my compiler
> warnings to always be errors"?
> Thanks,
> Nico
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20190124/08053b3d/attachment.html>

More information about the cfe-dev mailing list