lebedev.ri added a comment.

Thank you for the feedback!

In https://reviews.llvm.org/D43162#1022427, @rsmith wrote:

> This is the wrong way to deal with this. The only thing that should ever be 
> controlled by -W flags is whether the warnings in that group appear, not 
> whether warnings in other groups appear. The principle is that -W flags 
> should behave "as if" they filter the diagnostic output of Clang. (We 
> actually depend on this in the implicit modules implementation, to allow 
> modules to be reused in compilation modes where a different set of warning 
> flags is enabled.) `isIgnored` exists only to allow the computations leading 
> to the emission of a diagnostic to be skipped if the diagnostic will not 
> actually be emitted.


Aha, i see. To be noted, this is how it is currently already done for 
`warn_cxx98_compat_no_newline_eof`/`warn_no_newline_eof`
https://github.com/llvm-mirror/clang/blob/f828172bcfd7d6d10497c645c3cc5eee321cd669/lib/Lex/Lexer.cpp#L2684-L2695
https://github.com/llvm-mirror/clang/blob/f828172bcfd7d6d10497c645c3cc5eee321cd669/include/clang/Basic/DiagnosticLexKinds.td#L58-L63
So i'm guessing that^ should be fixed too?

> The right thing to do is to add a new warning group for the 
> `warn_cxx98_compat_top_level_semi` warning, and make that a subgroup of the 
> `-Wextra-semi` group. That way `-Wno-extra-semi` can be used to turn off both 
> the C++98 extension warning and the C++11 compatibility warning. Take a look 
> at the `*BinaryLiteral` warning groups for an example of how to do this. 
> (That case is a little more complex because there's also a warning group for 
> the corresponding case in C.)

I'll look into it, but *right now* this sounds like it won't do what i'm trying 
to do here. Hopefully i'm just missing the point :)


Repository:
  rC Clang

https://reviews.llvm.org/D43162



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to