[Libreoffice-commits] core.git: compilerplugins/clang
Stephan Bergmann
sbergman at redhat.com
Fri Aug 25 18:24:38 UTC 2017
compilerplugins/clang/redundantcast.cxx | 14 ++++++++++++++
1 file changed, 14 insertions(+)
New commits:
commit c5616014bb288b89610b8b59b9515a06577a8c41
Author: Stephan Bergmann <sbergman at redhat.com>
Date: Fri Aug 25 20:21:25 2017 +0200
loplugin:redundantcast: suppress warnings in reworked glibc assert macro
Change-Id: I20be230b3ff5d11395f33a9896d0a575c3051fb7
diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx
index 03e48f8fe261..19393e0c6449 100644
--- a/compilerplugins/clang/redundantcast.cxx
+++ b/compilerplugins/clang/redundantcast.cxx
@@ -439,6 +439,20 @@ bool RedundantCast::VisitCXXStaticCastExpr(CXXStaticCastExpr const * expr) {
{
return true;
}
+ // Suppress warnings from static_cast<bool> in C++ definition of assert in
+ // <https://sourceware.org/git/?p=glibc.git;a=commit;
+ // h=b5889d25e9bf944a89fdd7bcabf3b6c6f6bb6f7c> "assert: Support types
+ // without operator== (int) [BZ #21972]":
+ if (t1->isBooleanType() && t2->isBooleanType()) {
+ auto loc = expr->getLocStart();
+ if (compiler.getSourceManager().isMacroBodyExpansion(loc)
+ && (Lexer::getImmediateMacroName(
+ loc, compiler.getSourceManager(), compiler.getLangOpts())
+ == "assert"))
+ {
+ return true;
+ }
+ }
report(
DiagnosticsEngine::Warning,
("static_cast from %0 %1 to %2 %3 is redundant%select{| or should be"
More information about the Libreoffice-commits
mailing list