compilerplugins/clang/cstylecast.cxx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
New commits: commit a409d32e7f6fc09e041079d6dbc3c927497adfed Author: Stephan Bergmann <sberg...@redhat.com> Date: Mon Jan 15 09:10:25 2018 +0100 More loplugin:cstylecast ...also warn about the remaining cases of C-style casts (other than idiomatic cast to void) Change-Id: I274be61ad038fc41ac470fc07ea703a0f071f456 diff --git a/compilerplugins/clang/cstylecast.cxx b/compilerplugins/clang/cstylecast.cxx index f09ce81a2987..ba89c1aa02b5 100644 --- a/compilerplugins/clang/cstylecast.cxx +++ b/compilerplugins/clang/cstylecast.cxx @@ -232,16 +232,15 @@ bool CStyleCast::VisitCStyleCastExpr(const CStyleCastExpr * expr) { if( expr->getCastKind() == CK_ToVoid ) { return true; } - // ignore integral-type conversions for now, there is insufficient agreement about - // the merits of C++ style casting in this case - if( expr->getCastKind() == CK_IntegralCast ) { - return true; - } if (isSharedCAndCppCode(expr->getLocStart())) { return true; } char const * perf = nullptr; - if( expr->getCastKind() == CK_NoOp ) { + if( expr->getCastKind() == CK_IntegralCast ) { + if (rewriteArithmeticCast(expr, &perf)) { + return true; + } + } else if( expr->getCastKind() == CK_NoOp ) { if (!((expr->getSubExpr()->getType()->isPointerType() && expr->getType()->isPointerType()) || expr->getTypeAsWritten()->isReferenceType())) @@ -530,6 +529,9 @@ bool CStyleCast::rewriteArithmeticCast(CStyleCastExpr const * expr, char const * while (compiler.getSourceManager().isMacroBodyExpansion(third) && compiler.getSourceManager().isAtStartOfImmediateMacroExpansion(third, &third)) {} + } else if (compiler.getSourceManager().isMacroBodyExpansion(fourth)) { + while (compiler.getSourceManager().isMacroArgExpansion(third) + && compiler.getSourceManager().isAtStartOfImmediateMacroExpansion(third, &third)) {} } if (!third.isMacroID()) { while (compiler.getSourceManager().isMacroBodyExpansion(fourth) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits