[Libreoffice-commits] core.git: compilerplugins/clang
Stephan Bergmann (via logerrit)
logerrit at kemper.freedesktop.org
Tue Jan 14 20:41:55 UTC 2020
compilerplugins/clang/redundantcast.cxx | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
New commits:
commit a0b220b3a6946e54136c47acab587c3993dae6fa
Author: Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Tue Jan 14 19:52:56 2020 +0100
Commit: Stephan Bergmann <sbergman at redhat.com>
CommitDate: Tue Jan 14 21:41:23 2020 +0100
Avoid loplugin:redundantcast from within qWarning macro
...as seen with qt5-qtbase-devel-5.13.2-1.fc31.x86_64:
> vcl/unx/gtk3_kde5/kde5_filepicker_ipc.cxx:367:5: error: redundant static_cast from 'const char [65]' to 'const char *' [loplugin:redundantcast]
> qWarning() << "unhandled command " << static_cast<uint16_t>(command);
> ^~~~~~~~
> /usr/include/qt5/QtCore/qlogging.h:167:33: note: expanded from macro 'qWarning'
> #define qWarning QMessageLogger(QT_MESSAGELOG_FILE, QT_MESSAGELOG_LINE, QT_MESSAGELOG_FUNC).warning
> ^~~~~~~~~~~~~~~~~~
> /usr/include/qt5/QtCore/qlogging.h:156:30: note: expanded from macro 'QT_MESSAGELOG_FILE'
> #define QT_MESSAGELOG_FILE static_cast<const char *>(__FILE__)
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Change-Id: I9578b07cfd1a2de570ae2ab5842d65ef708f5d6a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86802
Tested-by: Jenkins
Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx
index 1f7765b8978d..862410c6484d 100644
--- a/compilerplugins/clang/redundantcast.cxx
+++ b/compilerplugins/clang/redundantcast.cxx
@@ -155,6 +155,12 @@ private:
bool visitBinOp(BinaryOperator const * expr);
void visitAssign(QualType lhs, Expr const * rhs);
bool isOverloadedFunction(FunctionDecl const * decl);
+
+ bool isInIgnoredMacroBody(Expr const * expr) {
+ auto const loc = compat::getBeginLoc(expr);
+ return compiler.getSourceManager().isMacroBodyExpansion(loc)
+ && ignoreLocation(compiler.getSourceManager().getSpellingLoc(loc));
+ }
};
bool RedundantCast::VisitImplicitCastExpr(const ImplicitCastExpr * expr) {
@@ -435,7 +441,8 @@ bool RedundantCast::VisitCXXStaticCastExpr(CXXStaticCastExpr const * expr) {
|| loplugin::isSamePathname(
fn, SRCDIR "/sal/qa/rtl/strings/test_oustring_concat.cxx")
|| loplugin::isSamePathname(
- fn, SRCDIR "/sal/qa/rtl/strings/test_oustring_stringliterals.cxx")))
+ fn, SRCDIR "/sal/qa/rtl/strings/test_oustring_stringliterals.cxx")
+ || isInIgnoredMacroBody(expr)))
{
report(
DiagnosticsEngine::Warning, "redundant static_cast from %0 to %1",
More information about the Libreoffice-commits
mailing list