compilerplugins/clang/automem.cxx | 4 compilerplugins/clang/blockblock.cxx | 8 - compilerplugins/clang/casttovoid.cxx | 4 compilerplugins/clang/changetoolsgen.cxx | 35 ++-- compilerplugins/clang/checkunusedparams.cxx | 6 compilerplugins/clang/commaoperator.cxx | 4 compilerplugins/clang/compat.hxx | 65 ++++++++ compilerplugins/clang/constantparam.cxx | 4 compilerplugins/clang/constparams.cxx | 16 +- compilerplugins/clang/countusersofdefaultparams.cxx | 4 compilerplugins/clang/cstylecast.cxx | 6 compilerplugins/clang/datamembershadow.cxx | 6 compilerplugins/clang/dbgunhandledexception.cxx | 8 - compilerplugins/clang/derefnullptr.cxx | 2 compilerplugins/clang/dodgyswitch.cxx | 4 compilerplugins/clang/emptyif.cxx | 5 compilerplugins/clang/expandablemethods.cxx | 2 compilerplugins/clang/expressionalwayszero.cxx | 8 - compilerplugins/clang/faileddyncast.cxx | 2 compilerplugins/clang/finalclasses.cxx | 2 compilerplugins/clang/finalprotected.cxx | 4 compilerplugins/clang/flatten.cxx | 8 - compilerplugins/clang/fragiledestructor.cxx | 12 - compilerplugins/clang/implicitboolconversion.cxx | 14 - compilerplugins/clang/inlinesimplememberfunctions.cxx | 10 - compilerplugins/clang/literaltoboolconversion.cxx | 20 +- compilerplugins/clang/mergeclasses.cxx | 2 compilerplugins/clang/nullptr.cxx | 12 - compilerplugins/clang/oncevar.cxx | 2 compilerplugins/clang/plugin.hxx | 3 compilerplugins/clang/privatebase.cxx | 2 compilerplugins/clang/rangedforcopy.cxx | 2 compilerplugins/clang/redundantcast.cxx | 18 +- compilerplugins/clang/redundantinline.cxx | 10 - compilerplugins/clang/redundantpointerops.cxx | 10 - compilerplugins/clang/refcounting.cxx | 6 compilerplugins/clang/rendercontext.cxx | 2 compilerplugins/clang/returnconstant.cxx | 11 - compilerplugins/clang/salbool.cxx | 32 ++-- compilerplugins/clang/salcall.cxx | 4 compilerplugins/clang/sallogareas.cxx | 10 - compilerplugins/clang/salunicodeliteral.cxx | 2 compilerplugins/clang/sfxpoolitem.cxx | 2 compilerplugins/clang/shouldreturnbool.cxx | 4 compilerplugins/clang/simplifybool.cxx | 142 +++++++++--------- compilerplugins/clang/simplifydynamiccast.cxx | 6 compilerplugins/clang/singlevalfields.cxx | 2 compilerplugins/clang/staticaccess.cxx | 2 compilerplugins/clang/staticanonymous.cxx | 2 compilerplugins/clang/staticmethods.cxx | 4 compilerplugins/clang/stringconcat.cxx | 10 - compilerplugins/clang/stringconstant.cxx | 14 - compilerplugins/clang/stringloop.cxx | 8 - compilerplugins/clang/unnecessarycatchthrow.cxx | 2 compilerplugins/clang/unnecessaryoverride.cxx | 2 compilerplugins/clang/unnecessaryparen.cxx | 56 +++---- compilerplugins/clang/unoany.cxx | 2 compilerplugins/clang/unusedenumconstants.cxx | 2 compilerplugins/clang/unusedfields.cxx | 16 +- compilerplugins/clang/unusedfieldsremove.cxx | 2 compilerplugins/clang/unusedindex.cxx | 3 compilerplugins/clang/unusedmethodsremove.cxx | 2 compilerplugins/clang/useuniqueptr.cxx | 18 +- compilerplugins/clang/vclwidgets.cxx | 26 +-- 64 files changed, 395 insertions(+), 323 deletions(-)
New commits: commit 3cc5149a84c7b8cfaf0deb2e2f6c88c72343ee28 Author: Stephan Bergmann <sberg...@redhat.com> AuthorDate: Fri Aug 10 12:35:21 2018 +0200 Commit: Stephan Bergmann <sberg...@redhat.com> CommitDate: Fri Aug 10 15:14:03 2018 +0200 Avoid -Werror=deprecated-declarations with recent Clang trunk ...which first added alternative names to and then deprecated getLocBegin/End Change-Id: Iaefb8ce259057abfa6cd20f0b63c0ef2949a96b2 Reviewed-on: https://gerrit.libreoffice.org/58820 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sberg...@redhat.com> diff --git a/compilerplugins/clang/automem.cxx b/compilerplugins/clang/automem.cxx index 4675c02325be..5c3d740bb9d0 100644 --- a/compilerplugins/clang/automem.cxx +++ b/compilerplugins/clang/automem.cxx @@ -51,7 +51,7 @@ bool AutoMem::VisitCXXDeleteExpr(const CXXDeleteExpr* expr) { if (ignoreLocation( expr )) return true; - StringRef aFileName = getFileNameOfSpellingLoc(compiler.getSourceManager().getSpellingLoc(expr->getLocStart())); + StringRef aFileName = getFileNameOfSpellingLoc(compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(expr))); if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/salhelper/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/osl/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/salhelper/") @@ -79,7 +79,7 @@ bool AutoMem::VisitCXXDeleteExpr(const CXXDeleteExpr* expr) report( DiagnosticsEngine::Warning, "calling delete on object field, rather use std::unique_ptr or std::scoped_ptr", - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); return true; } diff --git a/compilerplugins/clang/blockblock.cxx b/compilerplugins/clang/blockblock.cxx index bdb7d1361410..b0cba961aba0 100644 --- a/compilerplugins/clang/blockblock.cxx +++ b/compilerplugins/clang/blockblock.cxx @@ -47,9 +47,9 @@ bool BlockBlock::VisitCompoundStmt(CompoundStmt const * compound) auto inner = *compound->body_begin(); if (!isa<CompoundStmt>(inner)) return true; - if (compiler.getSourceManager().isMacroBodyExpansion(compound->getLocStart())) + if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(compound))) return true; - if (compiler.getSourceManager().isMacroBodyExpansion(inner->getLocStart())) + if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(inner))) return true; if (containsPreprocessingConditionalInclusion(compound->getSourceRange())) { return true; @@ -57,12 +57,12 @@ bool BlockBlock::VisitCompoundStmt(CompoundStmt const * compound) report( DiagnosticsEngine::Warning, "block directly inside block", - compound->getLocStart()) + compat::getBeginLoc(compound)) << compound->getSourceRange(); report( DiagnosticsEngine::Note, "inner block here", - inner->getLocStart()) + compat::getBeginLoc(inner)) << inner->getSourceRange(); return true; } diff --git a/compilerplugins/clang/casttovoid.cxx b/compilerplugins/clang/casttovoid.cxx index e8b080dab2a5..35c35da42a9a 100644 --- a/compilerplugins/clang/casttovoid.cxx +++ b/compilerplugins/clang/casttovoid.cxx @@ -440,7 +440,7 @@ private: return nullptr; } if (compiler.getSourceManager().isMacroBodyExpansion( - expr->getLocStart())) + compat::getBeginLoc(expr))) { return nullptr; } @@ -487,7 +487,7 @@ private: if (usage.firstConsumption != nullptr) { return; } - auto const loc = dre->getLocStart(); + auto const loc = compat::getBeginLoc(dre); if (compiler.getSourceManager().isMacroArgExpansion(loc) && (compat::getImmediateMacroNameForDiagnostics( loc, compiler.getSourceManager(), compiler.getLangOpts()) diff --git a/compilerplugins/clang/changetoolsgen.cxx b/compilerplugins/clang/changetoolsgen.cxx index 0b072c5dcbde..190c4abf2c84 100644 --- a/compilerplugins/clang/changetoolsgen.cxx +++ b/compilerplugins/clang/changetoolsgen.cxx @@ -111,7 +111,7 @@ bool ChangeToolsGen::VisitCXXMemberCallExpr(CXXMemberCallExpr const* call) if (auto unaryOp = dyn_cast<UnaryOperator>(parent)) { if (!ChangeUnaryOperator(unaryOp, call, methodName)) - report(DiagnosticsEngine::Warning, "Could not fix, unary", call->getLocStart()); + report(DiagnosticsEngine::Warning, "Could not fix, unary", compat::getBeginLoc(call)); return true; } auto binaryOp = dyn_cast<BinaryOperator>(parent); @@ -130,7 +130,7 @@ bool ChangeToolsGen::VisitCXXMemberCallExpr(CXXMemberCallExpr const* call) if (parent2 && isa<Expr>(parent2)) { report(DiagnosticsEngine::Warning, "Could not fix, embedded assign", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } // Check for @@ -139,25 +139,25 @@ bool ChangeToolsGen::VisitCXXMemberCallExpr(CXXMemberCallExpr const* call) if (rhs->getOpcode() == BO_Assign) { report(DiagnosticsEngine::Warning, "Could not fix, double assign", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } if (!ChangeAssignment(parent, methodName, setPrefix)) - report(DiagnosticsEngine::Warning, "Could not fix, assign", call->getLocStart()); + report(DiagnosticsEngine::Warning, "Could not fix, assign", compat::getBeginLoc(call)); return true; } if (opcode == BO_AddAssign || opcode == BO_SubAssign) { if (!ChangeBinaryOperatorPlusMinus(binaryOp, call, methodName)) report(DiagnosticsEngine::Warning, "Could not fix, assign-and-change", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } else if (opcode == BO_RemAssign || opcode == BO_MulAssign || opcode == BO_DivAssign) { if (!ChangeBinaryOperatorOther(binaryOp, call, methodName, setPrefix)) report(DiagnosticsEngine::Warning, "Could not fix, assign-and-change", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } else @@ -173,8 +173,8 @@ bool ChangeToolsGen::ChangeAssignment(Stmt const* parent, std::string const& met // and replace with // aRect.SetLeft( ... ); SourceManager& SM = compiler.getSourceManager(); - SourceLocation startLoc = SM.getExpansionLoc(parent->getLocStart()); - SourceLocation endLoc = SM.getExpansionLoc(parent->getLocEnd()); + SourceLocation startLoc = SM.getExpansionLoc(compat::getBeginLoc(parent)); + SourceLocation endLoc = SM.getExpansionLoc(compat::getEndLoc(parent)); const char* p1 = SM.getCharacterData(startLoc); const char* p2 = SM.getCharacterData(endLoc); unsigned n = Lexer::MeasureTokenLength(endLoc, SM, compiler.getLangOpts()); @@ -201,8 +201,8 @@ bool ChangeToolsGen::ChangeBinaryOperatorPlusMinus(BinaryOperator const* binaryO // and replace with // aRect.MoveLeft( ... ); SourceManager& SM = compiler.getSourceManager(); - SourceLocation startLoc = SM.getExpansionLoc(binaryOp->getLocStart()); - SourceLocation endLoc = SM.getExpansionLoc(binaryOp->getLocEnd()); + SourceLocation startLoc = SM.getExpansionLoc(compat::getBeginLoc(binaryOp)); + SourceLocation endLoc = SM.getExpansionLoc(compat::getEndLoc(binaryOp)); const char* p1 = SM.getCharacterData(startLoc); const char* p2 = SM.getCharacterData(endLoc); if (p2 < p1) // clang is misbehaving, appears to be macro constant related @@ -228,7 +228,7 @@ bool ChangeToolsGen::ChangeBinaryOperatorPlusMinus(BinaryOperator const* binaryO if (newText == callText) { report(DiagnosticsEngine::Warning, "binaryop-plusminus regex match failed", - call->getLocStart()); + compat::getBeginLoc(call)); return false; } @@ -245,8 +245,8 @@ bool ChangeToolsGen::ChangeBinaryOperatorOther(BinaryOperator const* binaryOp, // and replace with // aRect.SetLeft( aRect.GetLeft() + ... ); SourceManager& SM = compiler.getSourceManager(); - SourceLocation startLoc = SM.getExpansionLoc(binaryOp->getLocStart()); - SourceLocation endLoc = SM.getExpansionLoc(binaryOp->getLocEnd()); + SourceLocation startLoc = SM.getExpansionLoc(compat::getBeginLoc(binaryOp)); + SourceLocation endLoc = SM.getExpansionLoc(compat::getEndLoc(binaryOp)); const char* p1 = SM.getCharacterData(startLoc); const char* p2 = SM.getCharacterData(endLoc); if (p2 < p1) // clang is misbehaving, appears to be macro constant related @@ -284,7 +284,7 @@ bool ChangeToolsGen::ChangeBinaryOperatorOther(BinaryOperator const* binaryOp, if (newText == callText) { report(DiagnosticsEngine::Warning, "binaryop-other regex match failed %0", - call->getLocStart()) + compat::getBeginLoc(call)) << reString; return false; } @@ -308,8 +308,8 @@ bool ChangeToolsGen::ChangeUnaryOperator(UnaryOperator const* unaryOp, // aRect.MoveLeft( 1 ); SourceManager& SM = compiler.getSourceManager(); - SourceLocation startLoc = SM.getExpansionLoc(unaryOp->getLocStart()); - SourceLocation endLoc = SM.getExpansionLoc(unaryOp->getLocEnd()); + SourceLocation startLoc = SM.getExpansionLoc(compat::getBeginLoc(unaryOp)); + SourceLocation endLoc = SM.getExpansionLoc(compat::getEndLoc(unaryOp)); const char* p1 = SM.getCharacterData(startLoc); const char* p2 = SM.getCharacterData(endLoc); if (p2 < p1) // clang is misbehaving, appears to be macro constant related @@ -352,7 +352,8 @@ bool ChangeToolsGen::ChangeUnaryOperator(UnaryOperator const* unaryOp, } if (newText == callText) { - report(DiagnosticsEngine::Warning, "unaryop regex match failed %0", call->getLocStart()) + report(DiagnosticsEngine::Warning, "unaryop regex match failed %0", + compat::getBeginLoc(call)) << reString; return false; } diff --git a/compilerplugins/clang/checkunusedparams.cxx b/compilerplugins/clang/checkunusedparams.cxx index 84f05dca4dab..f0f95f6141db 100644 --- a/compilerplugins/clang/checkunusedparams.cxx +++ b/compilerplugins/clang/checkunusedparams.cxx @@ -199,7 +199,7 @@ bool CheckUnusedParams::VisitFunctionDecl(FunctionDecl const * decl) { return true; if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(canon->getLocation()))) return true; - StringRef fn = getFileNameOfSpellingLoc(compiler.getSourceManager().getSpellingLoc(canon->getLocStart())); + StringRef fn = getFileNameOfSpellingLoc(compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(canon))); // Some backwards compat magic. // TODO Can probably be removed, but need to do some checking if (loplugin::isSamePathname(fn, SRCDIR "/include/sax/fshelper.hxx")) @@ -471,7 +471,7 @@ bool CheckUnusedParams::VisitFunctionDecl(FunctionDecl const * decl) { continue; } report( DiagnosticsEngine::Warning, - "unused param %0 in %1", param->getLocStart()) + "unused param %0 in %1", compat::getBeginLoc(param)) << param->getSourceRange() << param->getName() << fqn; @@ -480,7 +480,7 @@ bool CheckUnusedParams::VisitFunctionDecl(FunctionDecl const * decl) { unsigned idx = param->getFunctionScopeIndex(); const ParmVarDecl* pOther = canon->getParamDecl(idx); report( DiagnosticsEngine::Note, "declaration is here", - pOther->getLocStart()) + compat::getBeginLoc(pOther)) << pOther->getSourceRange(); } } diff --git a/compilerplugins/clang/commaoperator.cxx b/compilerplugins/clang/commaoperator.cxx index 0693fc83a07b..431cb10a68a9 100644 --- a/compilerplugins/clang/commaoperator.cxx +++ b/compilerplugins/clang/commaoperator.cxx @@ -97,11 +97,11 @@ bool CommaOperator::VisitBinComma(const BinaryOperator* binaryOp) // winsock2.h (TODO: improve heuristic of determining that the whole // binaryOp is part of a single macro body expansion): if (compiler.getSourceManager().isMacroBodyExpansion( - binaryOp->getLocStart()) + compat::getBeginLoc(binaryOp)) && compiler.getSourceManager().isMacroBodyExpansion( binaryOp->getOperatorLoc()) && compiler.getSourceManager().isMacroBodyExpansion( - binaryOp->getLocEnd()) + compat::getEndLoc(binaryOp)) && ignoreLocation( compiler.getSourceManager().getSpellingLoc( binaryOp->getOperatorLoc()))) diff --git a/compilerplugins/clang/compat.hxx b/compilerplugins/clang/compat.hxx index e77846ab1166..a83ed8688278 100644 --- a/compilerplugins/clang/compat.hxx +++ b/compilerplugins/clang/compat.hxx @@ -14,6 +14,7 @@ #include <utility> #include "clang/AST/Decl.h" +#include "clang/AST/DeclCXX.h" #include "clang/AST/Expr.h" #include "clang/AST/ExprCXX.h" #include "clang/Basic/SourceManager.h" @@ -50,6 +51,70 @@ inline clang::FunctionDecl::param_const_range parameters( } #endif +inline clang::SourceLocation getBeginLoc(clang::Decl const * decl) { +#if CLANG_VERSION >= 80000 + return decl->getBeginLoc(); +#else + return decl->getLocStart(); +#endif +} + +inline clang::SourceLocation getEndLoc(clang::Decl const * decl) { +#if CLANG_VERSION >= 80000 + return decl->getEndLoc(); +#else + return decl->getLocEnd(); +#endif +} + +inline clang::SourceLocation getBeginLoc(clang::DeclarationNameInfo const & info) { +#if CLANG_VERSION >= 80000 + return info.getBeginLoc(); +#else + return info.getLocStart(); +#endif +} + +inline clang::SourceLocation getEndLoc(clang::DeclarationNameInfo const & info) { +#if CLANG_VERSION >= 80000 + return info.getEndLoc(); +#else + return info.getLocEnd(); +#endif +} + +inline clang::SourceLocation getBeginLoc(clang::Stmt const * stmt) { +#if CLANG_VERSION >= 80000 + return stmt->getBeginLoc(); +#else + return stmt->getLocStart(); +#endif +} + +inline clang::SourceLocation getEndLoc(clang::Stmt const * stmt) { +#if CLANG_VERSION >= 80000 + return stmt->getEndLoc(); +#else + return stmt->getLocEnd(); +#endif +} + +inline clang::SourceLocation getBeginLoc(clang::CXXBaseSpecifier const * spec) { +#if CLANG_VERSION >= 80000 + return spec->getBeginLoc(); +#else + return spec->getLocStart(); +#endif +} + +inline clang::SourceLocation getEndLoc(clang::CXXBaseSpecifier const * spec) { +#if CLANG_VERSION >= 80000 + return spec->getEndLoc(); +#else + return spec->getLocEnd(); +#endif +} + inline std::pair<clang::SourceLocation, clang::SourceLocation> getImmediateExpansionRange( clang::SourceManager const & SM, clang::SourceLocation Loc) { diff --git a/compilerplugins/clang/constantparam.cxx b/compilerplugins/clang/constantparam.cxx index efff4ac896d5..208fc19ca0f7 100644 --- a/compilerplugins/clang/constantparam.cxx +++ b/compilerplugins/clang/constantparam.cxx @@ -199,8 +199,8 @@ std::string ConstantParam::getCallValue(const Expr* arg) // Get the expression contents. // This helps us find params which are always initialised with something like "OUString()". SourceManager& SM = compiler.getSourceManager(); - SourceLocation startLoc = arg->getLocStart(); - SourceLocation endLoc = arg->getLocEnd(); + SourceLocation startLoc = compat::getBeginLoc(arg); + SourceLocation endLoc = compat::getEndLoc(arg); const char *p1 = SM.getCharacterData( startLoc ); const char *p2 = SM.getCharacterData( endLoc ); if (!p1 || !p2 || (p2 - p1) < 0 || (p2 - p1) > 40) { diff --git a/compilerplugins/clang/constparams.cxx b/compilerplugins/clang/constparams.cxx index 08e6aa2f1dc1..ee8ede3c1e2c 100644 --- a/compilerplugins/clang/constparams.cxx +++ b/compilerplugins/clang/constparams.cxx @@ -79,7 +79,7 @@ public: report( DiagnosticsEngine::Warning, "this parameter can be const", - pParmVarDecl->getLocStart()) + compat::getBeginLoc(pParmVarDecl)) << pParmVarDecl->getSourceRange(); if (canonicalDecl->getLocation() != functionDecl->getLocation()) { unsigned idx = pParmVarDecl->getFunctionScopeIndex(); @@ -87,7 +87,7 @@ public: report( DiagnosticsEngine::Note, "canonical parameter declaration here", - pOther->getLocStart()) + compat::getBeginLoc(pOther)) << pOther->getSourceRange(); } //functionDecl->dump(); @@ -172,13 +172,13 @@ bool ConstParams::CheckTraverseFunctionDecl(FunctionDecl * functionDecl) // ignore the macros from include/tools/link.hxx auto canonicalDecl = functionDecl->getCanonicalDecl(); - if (compiler.getSourceManager().isMacroBodyExpansion(canonicalDecl->getLocStart()) - || compiler.getSourceManager().isMacroArgExpansion(canonicalDecl->getLocStart())) { + if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(canonicalDecl)) + || compiler.getSourceManager().isMacroArgExpansion(compat::getBeginLoc(canonicalDecl))) { StringRef name { Lexer::getImmediateMacroName( - canonicalDecl->getLocStart(), compiler.getSourceManager(), compiler.getLangOpts()) }; + compat::getBeginLoc(canonicalDecl), compiler.getSourceManager(), compiler.getLangOpts()) }; if (name.startswith("DECL_LINK") || name.startswith("DECL_STATIC_LINK")) return false; - auto loc2 = compat::getImmediateExpansionRange(compiler.getSourceManager(), canonicalDecl->getLocStart()).first; + auto loc2 = compat::getImmediateExpansionRange(compiler.getSourceManager(), compat::getBeginLoc(canonicalDecl)).first; if (compiler.getSourceManager().isMacroBodyExpansion(loc2)) { StringRef name2 { Lexer::getImmediateMacroName( @@ -300,7 +300,7 @@ bool ConstParams::checkIfCanBeConst(const Stmt* stmt, const ParmVarDecl* parmVar report( DiagnosticsEngine::Warning, "no parent?", - stmt->getLocStart()) + compat::getBeginLoc(stmt)) << stmt->getSourceRange(); return false; } @@ -549,7 +549,7 @@ bool ConstParams::checkIfCanBeConst(const Stmt* stmt, const ParmVarDecl* parmVar report( DiagnosticsEngine::Warning, "oh dear, what can the matter be?", - parent->getLocStart()) + compat::getBeginLoc(parent)) << parent->getSourceRange(); return true; } diff --git a/compilerplugins/clang/countusersofdefaultparams.cxx b/compilerplugins/clang/countusersofdefaultparams.cxx index f3d68a143aed..12057dec9264 100644 --- a/compilerplugins/clang/countusersofdefaultparams.cxx +++ b/compilerplugins/clang/countusersofdefaultparams.cxx @@ -170,7 +170,7 @@ bool CountUsersOfDefaultParams::VisitCallExpr(const CallExpr * callExpr) { if ( n < (int)callExpr->getNumArgs() && callExpr->getArg(n)->isDefaultArgument()) { MyCallInfo callInfo; niceName(functionDecl, callInfo); - callInfo.sourceLocationOfCall = locationToString(callExpr->getLocStart()); + callInfo.sourceLocationOfCall = locationToString(compat::getBeginLoc(callExpr)); callSet.insert(callInfo); } return true; @@ -199,7 +199,7 @@ bool CountUsersOfDefaultParams::VisitCXXConstructExpr(const CXXConstructExpr * c if ( n < (int)constructExpr->getNumArgs() && constructExpr->getArg(n)->isDefaultArgument()) { MyCallInfo callInfo; niceName(constructorDecl, callInfo); - callInfo.sourceLocationOfCall = locationToString(constructExpr->getLocStart()); + callInfo.sourceLocationOfCall = locationToString(compat::getBeginLoc(constructExpr)); callSet.insert(callInfo); } return true; diff --git a/compilerplugins/clang/cstylecast.cxx b/compilerplugins/clang/cstylecast.cxx index 4bf3aaf6460f..07f59d8858e5 100644 --- a/compilerplugins/clang/cstylecast.cxx +++ b/compilerplugins/clang/cstylecast.cxx @@ -234,7 +234,7 @@ bool CStyleCast::VisitCStyleCastExpr(const CStyleCastExpr * expr) { if( expr->getCastKind() == CK_ToVoid ) { return true; } - if (isSharedCAndCppCode(expr->getLocStart())) { + if (isSharedCAndCppCode(compat::getBeginLoc(expr))) { return true; } char const * perf = nullptr; @@ -407,8 +407,8 @@ bool CStyleCast::rewriteArithmeticCast(CStyleCastExpr const * expr, char const * firstBegin = compiler.getSourceManager().getSpellingLoc(firstBegin); secondBegin = compiler.getSourceManager().getSpellingLoc(secondBegin); } - auto third = sub->getLocStart(); - auto fourth = sub->getLocEnd(); + auto third = compat::getBeginLoc(sub); + auto fourth = compat::getEndLoc(sub); bool macro = false; // Ensure that // diff --git a/compilerplugins/clang/datamembershadow.cxx b/compilerplugins/clang/datamembershadow.cxx index 35c96c6f240f..2bb643d22a86 100644 --- a/compilerplugins/clang/datamembershadow.cxx +++ b/compilerplugins/clang/datamembershadow.cxx @@ -45,7 +45,7 @@ bool DataMemberShadow::VisitFieldDecl(FieldDecl const * fieldDecl) return true; } StringRef aFileName = getFileNameOfSpellingLoc( - compiler.getSourceManager().getSpellingLoc(fieldDecl->getLocStart())); + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(fieldDecl))); // FIXME complex stuff to fix later @@ -97,13 +97,13 @@ bool DataMemberShadow::VisitFieldDecl(FieldDecl const * fieldDecl) sPath += baseCXXRecordDecl->getNameAsString(); report(DiagnosticsEngine::Warning, "data member %0 is shadowing member in superclass, through inheritance path %1", - fieldDecl->getLocStart()) + compat::getBeginLoc(fieldDecl)) << fieldDecl->getName() << sPath << fieldDecl->getSourceRange(); report(DiagnosticsEngine::Note, "superclass member here", - baseFieldDecl->getLocStart()) + compat::getBeginLoc(baseFieldDecl)) << baseFieldDecl->getSourceRange(); } return false; diff --git a/compilerplugins/clang/dbgunhandledexception.cxx b/compilerplugins/clang/dbgunhandledexception.cxx index 54b00f57f758..633e655cd109 100644 --- a/compilerplugins/clang/dbgunhandledexception.cxx +++ b/compilerplugins/clang/dbgunhandledexception.cxx @@ -69,7 +69,7 @@ bool DbgUnhandledException::VisitCallExpr(const CallExpr* call) if (!currCatchStmt) { report(DiagnosticsEngine::Warning, "DBG_UNHANDLED_EXCEPTION outside catch block", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } auto catchBlock = dyn_cast<CompoundStmt>(currCatchStmt->getHandlerBlock()); @@ -77,14 +77,14 @@ bool DbgUnhandledException::VisitCallExpr(const CallExpr* call) { report(DiagnosticsEngine::Warning, "something wrong with DBG_UNHANDLED_EXCEPTION, no CompoundStmt?", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } if (catchBlock->size() < 1) { report(DiagnosticsEngine::Warning, "something wrong with DBG_UNHANDLED_EXCEPTION, CompoundStmt size == 0?", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } @@ -95,7 +95,7 @@ bool DbgUnhandledException::VisitCallExpr(const CallExpr* call) { report(DiagnosticsEngine::Warning, "DBG_UNHANDLED_EXCEPTION must be first statement in catch block", - call->getLocStart()); + compat::getBeginLoc(call)); } return true; } diff --git a/compilerplugins/clang/derefnullptr.cxx b/compilerplugins/clang/derefnullptr.cxx index 350bed2156dc..db7b3b9eb5ed 100644 --- a/compilerplugins/clang/derefnullptr.cxx +++ b/compilerplugins/clang/derefnullptr.cxx @@ -32,7 +32,7 @@ bool DerefNullPtr::VisitUnaryDeref(UnaryOperator const * op) { { report( DiagnosticsEngine::Warning, "null pointer dereference", - op->getLocStart()) + compat::getBeginLoc(op)) << op->getSourceRange(); } return true; diff --git a/compilerplugins/clang/dodgyswitch.cxx b/compilerplugins/clang/dodgyswitch.cxx index 98ac1c161ef5..066d4fcebebb 100644 --- a/compilerplugins/clang/dodgyswitch.cxx +++ b/compilerplugins/clang/dodgyswitch.cxx @@ -41,7 +41,7 @@ bool DodgySwitch::VisitDefaultStmt(DefaultStmt const * defaultStmt) if (!IsParentSwitch(defaultStmt)) report( DiagnosticsEngine::Warning, "default statement not directly under switch", - defaultStmt->getLocStart()) + compat::getBeginLoc(defaultStmt)) << defaultStmt->getSourceRange(); return true; } @@ -55,7 +55,7 @@ bool DodgySwitch::VisitCaseStmt(CaseStmt const * caseStmt) //parentStmt(parentStmt(caseStmt))->dump(); report( DiagnosticsEngine::Warning, "case statement not directly under switch", - caseStmt->getLocStart()) + compat::getBeginLoc(caseStmt)) << caseStmt->getSourceRange(); } return true; diff --git a/compilerplugins/clang/emptyif.cxx b/compilerplugins/clang/emptyif.cxx index 6eac86b6bcc7..82bd22338c06 100644 --- a/compilerplugins/clang/emptyif.cxx +++ b/compilerplugins/clang/emptyif.cxx @@ -69,14 +69,15 @@ bool EmptyIf::VisitIfStmt(IfStmt const* ifStmt) if (ifStmt->getElse() && empty(ifStmt->getElse()) && !ContainsComment(ifStmt->getElse())) { - report(DiagnosticsEngine::Warning, "empty else body", ifStmt->getElse()->getLocStart()) + report(DiagnosticsEngine::Warning, "empty else body", + compat::getBeginLoc(ifStmt->getElse())) << ifStmt->getElse()->getSourceRange(); return true; } if (!ifStmt->getElse() && empty(ifStmt->getThen()) && !ContainsComment(ifStmt->getThen())) { - report(DiagnosticsEngine::Warning, "empty if body", ifStmt->getLocStart()) + report(DiagnosticsEngine::Warning, "empty if body", compat::getBeginLoc(ifStmt)) << ifStmt->getSourceRange(); } diff --git a/compilerplugins/clang/expandablemethods.cxx b/compilerplugins/clang/expandablemethods.cxx index 20d5a6998e39..4da75cfd0f02 100644 --- a/compilerplugins/clang/expandablemethods.cxx +++ b/compilerplugins/clang/expandablemethods.cxx @@ -268,7 +268,7 @@ void ExpandableMethods::functionTouchedFromExpr( const FunctionDecl* calleeFunct return; } - calledFromSet.emplace(toString(expr->getLocStart()), niceName(canonicalFunctionDecl)); + calledFromSet.emplace(toString(compat::getBeginLoc(expr)), niceName(canonicalFunctionDecl)); if (const UnaryOperator* unaryOp = dyn_cast_or_null<UnaryOperator>(getParentStmt(expr))) { if (unaryOp->getOpcode() == UO_AddrOf) { diff --git a/compilerplugins/clang/expressionalwayszero.cxx b/compilerplugins/clang/expressionalwayszero.cxx index 0f0eb7a541e6..ab343c1ae902 100644 --- a/compilerplugins/clang/expressionalwayszero.cxx +++ b/compilerplugins/clang/expressionalwayszero.cxx @@ -73,7 +73,7 @@ bool ExpressionAlwaysZero::VisitBinaryOperator( BinaryOperator const * binaryOpe { if (ignoreLocation(binaryOperator)) return true; - if (binaryOperator->getLocStart().isMacroID()) + if (compat::getBeginLoc(binaryOperator).isMacroID()) return true; auto op = binaryOperator->getOpcode(); @@ -92,7 +92,7 @@ bool ExpressionAlwaysZero::VisitBinaryOperator( BinaryOperator const * binaryOpe return true; report( DiagnosticsEngine::Warning, "expression always evaluates to zero, lhs=%0 rhs=%1", - binaryOperator->getLocStart()) + compat::getBeginLoc(binaryOperator)) << (lhsValue ? lhsValue->toString(10) : "unknown") << (rhsValue ? rhsValue->toString(10) : "unknown") << binaryOperator->getSourceRange(); @@ -103,7 +103,7 @@ bool ExpressionAlwaysZero::VisitCXXOperatorCallExpr( CXXOperatorCallExpr const * { if (ignoreLocation(cxxOperatorCallExpr)) return true; - if (cxxOperatorCallExpr->getLocStart().isMacroID()) + if (compat::getBeginLoc(cxxOperatorCallExpr).isMacroID()) return true; auto op = cxxOperatorCallExpr->getOperator(); @@ -124,7 +124,7 @@ bool ExpressionAlwaysZero::VisitCXXOperatorCallExpr( CXXOperatorCallExpr const * return true; report( DiagnosticsEngine::Warning, "expression always evaluates to zero, lhs=%0 rhs=%1", - cxxOperatorCallExpr->getLocStart()) + compat::getBeginLoc(cxxOperatorCallExpr)) << (lhsValue ? lhsValue->toString(10) : "unknown") << (rhsValue ? rhsValue->toString(10) : "unknown") << cxxOperatorCallExpr->getSourceRange(); diff --git a/compilerplugins/clang/faileddyncast.cxx b/compilerplugins/clang/faileddyncast.cxx index f99077137f9f..eee5be57d584 100644 --- a/compilerplugins/clang/faileddyncast.cxx +++ b/compilerplugins/clang/faileddyncast.cxx @@ -116,7 +116,7 @@ bool FailedDynCast::VisitCXXDynamicCastExpr(CXXDynamicCastExpr const * expr) { if (isAlwaysNull(expr)) { report( DiagnosticsEngine::Warning, - "dynamic_cast from %0 to %1 always fails", expr->getLocStart()) + "dynamic_cast from %0 to %1 always fails", compat::getBeginLoc(expr)) << expr->getSubExpr()->getType() << expr->getType() << expr->getSourceRange(); } diff --git a/compilerplugins/clang/finalclasses.cxx b/compilerplugins/clang/finalclasses.cxx index 6e8596a78421..f31f28d8f895 100644 --- a/compilerplugins/clang/finalclasses.cxx +++ b/compilerplugins/clang/finalclasses.cxx @@ -127,7 +127,7 @@ bool FinalClasses::VisitCXXRecordDecl(const CXXRecordDecl* decl) if (ignoreClass(s)) return true; - SourceLocation spellingLocation = compiler.getSourceManager().getSpellingLoc(decl->getLocStart()); + SourceLocation spellingLocation = compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(decl)); std::string filename = compiler.getSourceManager().getFilename(spellingLocation); auto sourceLocation = filename.substr(strlen(SRCDIR)) + ":" + std::to_string(compiler.getSourceManager().getSpellingLineNumber(spellingLocation)); diff --git a/compilerplugins/clang/finalprotected.cxx b/compilerplugins/clang/finalprotected.cxx index 71b3cfca03f1..8032d0d5d743 100644 --- a/compilerplugins/clang/finalprotected.cxx +++ b/compilerplugins/clang/finalprotected.cxx @@ -50,7 +50,7 @@ bool FinalProtected::VisitCXXMethodDecl(CXXMethodDecl const * cxxMethodDecl) cxxMethodDecl = cxxMethodDecl->getCanonicalDecl(); report(DiagnosticsEngine::Warning, "final class should not have protected members - convert them to private", - cxxMethodDecl->getLocStart()) + compat::getBeginLoc(cxxMethodDecl)) << cxxMethodDecl->getSourceRange(); return true; } @@ -69,7 +69,7 @@ bool FinalProtected::VisitFieldDecl(FieldDecl const * fieldDecl) fieldDecl = fieldDecl->getCanonicalDecl(); report(DiagnosticsEngine::Warning, "final class should not have protected members - convert them to private", - fieldDecl->getLocStart()) + compat::getBeginLoc(fieldDecl)) << fieldDecl->getSourceRange(); return true; } diff --git a/compilerplugins/clang/flatten.cxx b/compilerplugins/clang/flatten.cxx index dd116d7a4ea5..40376d2e1678 100644 --- a/compilerplugins/clang/flatten.cxx +++ b/compilerplugins/clang/flatten.cxx @@ -204,7 +204,7 @@ bool Flatten::VisitIfStmt(IfStmt const * ifStmt) report( DiagnosticsEngine::Warning, "large if statement at end of function, rather invert the condition and exit early, and flatten the function", - ifStmt->getLocStart()) + compat::getBeginLoc(ifStmt)) << ifStmt->getSourceRange(); } return true; @@ -238,12 +238,12 @@ bool Flatten::VisitIfStmt(IfStmt const * ifStmt) report( DiagnosticsEngine::Warning, "unconditional throw in else branch, rather invert the condition, throw early, and flatten the normal case", - elseThrowExpr->getLocStart()) + compat::getBeginLoc(elseThrowExpr)) << elseThrowExpr->getSourceRange(); report( DiagnosticsEngine::Note, "if condition here", - ifStmt->getLocStart()) + compat::getBeginLoc(ifStmt)) << ifStmt->getSourceRange(); } } @@ -260,7 +260,7 @@ bool Flatten::VisitIfStmt(IfStmt const * ifStmt) report( DiagnosticsEngine::Warning, "unconditional throw in then branch, just flatten the else", - thenThrowExpr->getLocStart()) + compat::getBeginLoc(thenThrowExpr)) << thenThrowExpr->getSourceRange(); } } diff --git a/compilerplugins/clang/fragiledestructor.cxx b/compilerplugins/clang/fragiledestructor.cxx index d1bff95ddf72..2c4b3235eb38 100644 --- a/compilerplugins/clang/fragiledestructor.cxx +++ b/compilerplugins/clang/fragiledestructor.cxx @@ -48,7 +48,7 @@ bool FragileDestructor::TraverseCXXDestructorDecl(CXXDestructorDecl* pCXXDestruc } // ignore this for now, too tricky for me to work out StringRef aFileName = getFileNameOfSpellingLoc( - compiler.getSourceManager().getSpellingLoc(pCXXDestructorDecl->getLocStart())); + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(pCXXDestructorDecl))); if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/comphelper/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/cppuhelper/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/cppuhelper/") @@ -80,15 +80,15 @@ bool FragileDestructor::VisitCXXMemberCallExpr(const CXXMemberCallExpr* callExpr return true; } // if we see an explicit call to its own method, that's OK - auto s1 = compiler.getSourceManager().getCharacterData(callExpr->getLocStart()); - auto s2 = compiler.getSourceManager().getCharacterData(callExpr->getLocEnd()); + auto s1 = compiler.getSourceManager().getCharacterData(compat::getBeginLoc(callExpr)); + auto s2 = compiler.getSourceManager().getCharacterData(compat::getEndLoc(callExpr)); std::string tok(s1, s2-s1); if (tok.find("::") != std::string::npos) { return true; } // e.g. osl/thread.hxx and cppuhelper/compbase.hxx StringRef aFileName = getFileNameOfSpellingLoc( - compiler.getSourceManager().getSpellingLoc(methodDecl->getLocStart())); + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(methodDecl))); if (loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/osl/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/comphelper/") || loplugin::hasPathnamePrefix(aFileName, SRCDIR "/include/cppuhelper/")) @@ -96,12 +96,12 @@ bool FragileDestructor::VisitCXXMemberCallExpr(const CXXMemberCallExpr* callExpr report( DiagnosticsEngine::Warning, "calling virtual method from destructor, either make the virtual method SAL_FINAL, or make this class SAL_FINAL", - callExpr->getLocStart()) + compat::getBeginLoc(callExpr)) << callExpr->getSourceRange(); report( DiagnosticsEngine::Note, "callee method here", - methodDecl->getLocStart()) + compat::getBeginLoc(methodDecl)) << methodDecl->getSourceRange(); return true; } diff --git a/compilerplugins/clang/implicitboolconversion.cxx b/compilerplugins/clang/implicitboolconversion.cxx index d7e80f56ab36..dd1eb4c1718b 100644 --- a/compilerplugins/clang/implicitboolconversion.cxx +++ b/compilerplugins/clang/implicitboolconversion.cxx @@ -686,7 +686,7 @@ bool ImplicitBoolConversion::TraverseBinAndAssign(CompoundAssignOperator * expr) { report( DiagnosticsEngine::Warning, "mix of %0 and %1 in operator &=", - expr->getRHS()->getLocStart()) + compat::getBeginLoc(expr->getRHS())) << expr->getLHS()->getType() << expr->getRHS()->IgnoreParenImpCasts()->getType() << expr->getSourceRange(); @@ -712,7 +712,7 @@ bool ImplicitBoolConversion::TraverseBinOrAssign(CompoundAssignOperator * expr) { report( DiagnosticsEngine::Warning, "mix of %0 and %1 in operator |=", - expr->getRHS()->getLocStart()) + compat::getBeginLoc(expr->getRHS())) << expr->getLHS()->getType() << expr->getRHS()->IgnoreParenImpCasts()->getType() << expr->getSourceRange(); @@ -738,7 +738,7 @@ bool ImplicitBoolConversion::TraverseBinXorAssign(CompoundAssignOperator * expr) { report( DiagnosticsEngine::Warning, "mix of %0 and %1 in operator ^=", - expr->getRHS()->getLocStart()) + compat::getBeginLoc(expr->getRHS())) << expr->getLHS()->getType() << expr->getRHS()->IgnoreParenImpCasts()->getType() << expr->getSourceRange(); @@ -870,7 +870,7 @@ bool ImplicitBoolConversion::VisitImplicitCastExpr( DiagnosticsEngine::Warning, ("explicit conversion (%0) from %1 to %2 implicitly cast back" " to %3"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << sub->getCastKindName() << subsub->getType() << sub->getType() << expr->getType() << expr->getSourceRange(); return true; @@ -888,7 +888,7 @@ bool ImplicitBoolConversion::VisitImplicitCastExpr( report( DiagnosticsEngine::Warning, "implicit conversion (%0) of call argument from %1 to %2", - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getCastKindName() << expr->getSubExpr()->getType() << expr->getType() << expr->getSourceRange(); return true; @@ -912,7 +912,7 @@ bool ImplicitBoolConversion::VisitMaterializeTemporaryExpr( DiagnosticsEngine::Warning, ("explicit conversion (%0) from %1 to %2 implicitly converted" " back to %3"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << sub->getCastKindName() << subsub->getType() << sub->getType() << expr->getType() << expr->getSourceRange(); return true; @@ -1017,7 +1017,7 @@ void ImplicitBoolConversion::reportWarning(ImplicitCastExpr const * expr) { if (compiler.getLangOpts().CPlusPlus) { report( DiagnosticsEngine::Warning, - "implicit conversion (%0) from %1 to %2", expr->getLocStart()) + "implicit conversion (%0) from %1 to %2", compat::getBeginLoc(expr)) << expr->getCastKindName() << expr->getSubExprAsWritten()->getType() << expr->getType() << expr->getSourceRange(); } diff --git a/compilerplugins/clang/inlinesimplememberfunctions.cxx b/compilerplugins/clang/inlinesimplememberfunctions.cxx index 9a1d1f6f3abb..64734dc9de9a 100644 --- a/compilerplugins/clang/inlinesimplememberfunctions.cxx +++ b/compilerplugins/clang/inlinesimplememberfunctions.cxx @@ -243,8 +243,8 @@ bool InlineSimpleMemberFunctions::rewrite(const CXXMethodDecl * functionDecl) { const char *p1, *p2; // get the function body contents - p1 = compiler.getSourceManager().getCharacterData( functionDecl->getBody()->getLocStart() ); - p2 = compiler.getSourceManager().getCharacterData( functionDecl->getBody()->getLocEnd() ); + p1 = compiler.getSourceManager().getCharacterData( compat::getBeginLoc(functionDecl->getBody()) ); + p2 = compiler.getSourceManager().getCharacterData( compat::getEndLoc(functionDecl->getBody()) ); std::string s1( p1, p2 - p1 + 1); /* we can't safely move around stuff containing comments, we mess up the resulting code */ @@ -274,18 +274,18 @@ bool InlineSimpleMemberFunctions::rewrite(const CXXMethodDecl * functionDecl) { // remove the function's out of line body and declaration RewriteOptions opts; opts.RemoveLineIfEmpty = true; - if (!removeText(SourceRange(functionDecl->getLocStart(), functionDecl->getBody()->getLocEnd()), opts)) { + if (!removeText(SourceRange(compat::getBeginLoc(functionDecl), compat::getEndLoc(functionDecl->getBody())), opts)) { return false; } // scan forward until we find the semicolon const FunctionDecl * canonicalDecl = functionDecl->getCanonicalDecl(); - p1 = compiler.getSourceManager().getCharacterData( canonicalDecl->getLocEnd() ); + p1 = compiler.getSourceManager().getCharacterData( compat::getEndLoc(canonicalDecl) ); p2 = ++p1; while (*p2 != 0 && *p2 != ';') p2++; // insert the function body into the inline function definition (i.e. the one inside the class definition) - return replaceText(canonicalDecl->getLocEnd().getLocWithOffset(p2 - p1 + 1), 1, s1); + return replaceText(compat::getEndLoc(canonicalDecl).getLocWithOffset(p2 - p1 + 1), 1, s1); } loplugin::Plugin::Registration< InlineSimpleMemberFunctions > X("inlinesimplememberfunctions"); diff --git a/compilerplugins/clang/literaltoboolconversion.cxx b/compilerplugins/clang/literaltoboolconversion.cxx index 19c18a4ca765..270ebc3455ca 100644 --- a/compilerplugins/clang/literaltoboolconversion.cxx +++ b/compilerplugins/clang/literaltoboolconversion.cxx @@ -118,7 +118,7 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( && subExpr->isIntegerConstantExpr(res, compiler.getASTContext()) && res.getLimitedValue() <= 1) { - SourceLocation loc { subExpr->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(subExpr) }; while (compiler.getSourceManager().isMacroArgExpansion(loc)) { loc = compiler.getSourceManager().getImmediateMacroCallerLoc(loc); } @@ -134,7 +134,7 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( } } if (isa<clang::StringLiteral>(subExpr)) { - SourceLocation loc { subExpr->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(subExpr) }; if (compiler.getSourceManager().isMacroArgExpansion(loc) && (Lexer::getImmediateMacroName( loc, compiler.getSourceManager(), compiler.getLangOpts()) @@ -150,25 +150,25 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( bool bRewritten = false; if (rewriter != nullptr) { SourceLocation loc { compiler.getSourceManager().getExpansionLoc( - expr2->getLocStart()) }; - if (compiler.getSourceManager().getExpansionLoc(expr2->getLocEnd()) + compat::getBeginLoc(expr2)) }; + if (compiler.getSourceManager().getExpansionLoc(compat::getEndLoc(expr2)) == loc) { char const * s = compiler.getSourceManager().getCharacterData( loc); unsigned n = Lexer::MeasureTokenLength( - expr2->getLocEnd(), compiler.getSourceManager(), + compat::getEndLoc(expr2), compiler.getSourceManager(), compiler.getLangOpts()); std::string tok { s, n }; if (tok == "sal_False" || tok == "0") { bRewritten = replaceText( compiler.getSourceManager().getExpansionLoc( - expr2->getLocStart()), + compat::getBeginLoc(expr2)), n, "false"); } else if (tok == "sal_True" || tok == "1") { bRewritten = replaceText( compiler.getSourceManager().getExpansionLoc( - expr2->getLocStart()), + compat::getBeginLoc(expr2)), n, "true"); } } @@ -177,7 +177,7 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( report( DiagnosticsEngine::Warning, "implicit conversion (%0) of literal of type %1 to %2", - expr2->getLocStart()) + compat::getBeginLoc(expr2)) << castExpr->getCastKindName() << subExpr->getType() << castExpr->getType() << expr2->getSourceRange(); } @@ -194,7 +194,7 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( DiagnosticsEngine::Warning, ("implicit conversion (%0) of null pointer constant of type %1 to" " %2"), - expr2->getLocStart()) + compat::getBeginLoc(expr2)) << castExpr->getCastKindName() << subExpr->getType() << castExpr->getType() << expr2->getSourceRange(); } else if (!subExpr->isValueDependent() @@ -204,7 +204,7 @@ void LiteralToBoolConversion::handleImplicitCastSubExpr( DiagnosticsEngine::Warning, ("implicit conversion (%0) of integer constant expression of type" " %1 with value %2 to %3"), - expr2->getLocStart()) + compat::getBeginLoc(expr2)) << castExpr->getCastKindName() << subExpr->getType() << res.toString(10) << castExpr->getType() << expr2->getSourceRange(); diff --git a/compilerplugins/clang/mergeclasses.cxx b/compilerplugins/clang/mergeclasses.cxx index 6035e7c275dc..ce08d627b931 100644 --- a/compilerplugins/clang/mergeclasses.cxx +++ b/compilerplugins/clang/mergeclasses.cxx @@ -148,7 +148,7 @@ bool MergeClasses::VisitCXXRecordDecl(const CXXRecordDecl* decl) } if (decl->isThisDeclarationADefinition()) { - SourceLocation spellingLocation = compiler.getSourceManager().getSpellingLoc(decl->getLocStart()); + SourceLocation spellingLocation = compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(decl)); std::string filename = compiler.getSourceManager().getFilename(spellingLocation); filename = filename.substr(strlen(SRCDIR)); std::string s = decl->getQualifiedNameAsString(); diff --git a/compilerplugins/clang/nullptr.cxx b/compilerplugins/clang/nullptr.cxx index ccd5837b226f..c463caec7c5d 100644 --- a/compilerplugins/clang/nullptr.cxx +++ b/compilerplugins/clang/nullptr.cxx @@ -121,7 +121,7 @@ bool Nullptr::VisitImplicitCastExpr(CastExpr const * expr) { case Expr::NPCK_ZeroLiteral: report( DiagnosticsEngine::Warning, - "suspicious ValueDependentIsNull %0", expr->getLocStart()) + "suspicious ValueDependentIsNull %0", compat::getBeginLoc(expr)) << kindName(k) << expr->getSourceRange(); break; default: @@ -304,7 +304,7 @@ void Nullptr::handleNull( SourceLocation loc; for (;;) { e = e->IgnoreImpCasts(); - loc = e->getLocStart(); + loc = compat::getBeginLoc(e); while (compiler.getSourceManager().isMacroArgExpansion(loc)) { loc = compiler.getSourceManager().getImmediateMacroCallerLoc(loc); } @@ -369,7 +369,7 @@ void Nullptr::rewriteOrWarn( Expr::NullPointerConstantKind nullPointerKind, char const * replacement) { if (rewriter != nullptr) { - SourceLocation locStart(expr->getLocStart()); + SourceLocation locStart(compat::getBeginLoc(expr)); while (compiler.getSourceManager().isMacroArgExpansion(locStart)) { locStart = compiler.getSourceManager() .getImmediateMacroCallerLoc(locStart); @@ -384,7 +384,7 @@ void Nullptr::rewriteOrWarn( locStart = compat::getImmediateExpansionRange(compiler.getSourceManager(), locStart) .first; } - SourceLocation locEnd(expr->getLocEnd()); + SourceLocation locEnd(compat::getEndLoc(expr)); while (compiler.getSourceManager().isMacroArgExpansion(locEnd)) { locEnd = compiler.getSourceManager() .getImmediateMacroCallerLoc(locEnd); @@ -403,13 +403,13 @@ void Nullptr::rewriteOrWarn( } } if (castKind == nullptr) { - report(DiagnosticsEngine::Warning, "%0 -> %1", expr->getLocStart()) + report(DiagnosticsEngine::Warning, "%0 -> %1", compat::getBeginLoc(expr)) << kindName(nullPointerKind) << replacement << expr->getSourceRange(); } else { report( DiagnosticsEngine::Warning, "%0 ValueDependentIsNotNull %1 -> %2", - expr->getLocStart()) + compat::getBeginLoc(expr)) << castKind << kindName(nullPointerKind) << replacement << expr->getSourceRange(); } diff --git a/compilerplugins/clang/oncevar.cxx b/compilerplugins/clang/oncevar.cxx index afb1b0fa85e9..be03b4d96589 100644 --- a/compilerplugins/clang/oncevar.cxx +++ b/compilerplugins/clang/oncevar.cxx @@ -322,7 +322,7 @@ bool OnceVar::VisitVarDecl( const VarDecl* varDecl ) return true; } // Ignore macros like FD_ZERO - if (compiler.getSourceManager().isMacroBodyExpansion(varDecl->getLocStart())) { + if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(varDecl))) { return true; } if (varDecl->hasGlobalStorage()) { diff --git a/compilerplugins/clang/plugin.hxx b/compilerplugins/clang/plugin.hxx index 4c4d9a70fcb3..0820f311c1a1 100644 --- a/compilerplugins/clang/plugin.hxx +++ b/compilerplugins/clang/plugin.hxx @@ -25,6 +25,7 @@ #include <clang/Rewrite/Core/Rewriter.h> +#include "compat.hxx" #include "pluginhandler.hxx" using namespace clang; @@ -195,7 +196,7 @@ bool Plugin::ignoreLocation( const Stmt* stmt ) const { // Invalid location can happen at least for ImplicitCastExpr of // ImplicitParam 'self' in Objective C method declarations: - return stmt->getLocStart().isValid() && ignoreLocation( stmt->getLocStart()); + return compat::getBeginLoc(stmt).isValid() && ignoreLocation( compat::getBeginLoc(stmt)); } template< typename T > diff --git a/compilerplugins/clang/privatebase.cxx b/compilerplugins/clang/privatebase.cxx index 60acfc347ed9..3b1862a7bc6c 100644 --- a/compilerplugins/clang/privatebase.cxx +++ b/compilerplugins/clang/privatebase.cxx @@ -41,7 +41,7 @@ bool PrivateBase::VisitCXXRecordDecl(CXXRecordDecl const * decl) { DiagnosticsEngine::Warning, "base class is private by default; explicitly give an access" " specifier", - i->getLocStart()) + compat::getBeginLoc(i)) << i->getSourceRange(); } } diff --git a/compilerplugins/clang/rangedforcopy.cxx b/compilerplugins/clang/rangedforcopy.cxx index 4baed6b6e5db..4a05de1c6558 100644 --- a/compilerplugins/clang/rangedforcopy.cxx +++ b/compilerplugins/clang/rangedforcopy.cxx @@ -51,7 +51,7 @@ bool RangedForCopy::VisitCXXForRangeStmt( const CXXForRangeStmt* stmt ) report( DiagnosticsEngine::Warning, "Loop variable passed by value, pass by reference instead, e.g. 'const %0&'", - varDecl->getLocStart()) + compat::getBeginLoc(varDecl)) << name << varDecl->getSourceRange(); } diff --git a/compilerplugins/clang/redundantcast.cxx b/compilerplugins/clang/redundantcast.cxx index b6db47495a6d..ad7818f4a981 100644 --- a/compilerplugins/clang/redundantcast.cxx +++ b/compilerplugins/clang/redundantcast.cxx @@ -207,7 +207,7 @@ bool RedundantCast::VisitImplicitCastExpr(const ImplicitCastExpr * expr) { dyn_cast<CXXStaticCastExpr>(e)->getSubExpr() ->IgnoreParenImpCasts()->getType()) && !compiler.getSourceManager().isMacroBodyExpansion( - e->getLocStart())) + compat::getBeginLoc(e))) { report( DiagnosticsEngine::Warning, @@ -287,7 +287,7 @@ bool RedundantCast::VisitCStyleCastExpr(CStyleCastExpr const * expr) { if (ignoreLocation(expr)) { return true; } - if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(expr->getLocStart()))) { + if (isInUnoIncludeFile(compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(expr)))) { return true; } auto t1 = compat::getSubExprAsWritten(expr)->getType(); @@ -308,7 +308,7 @@ bool RedundantCast::VisitCStyleCastExpr(CStyleCastExpr const * expr) { // Ignore FD_ISSET expanding to "...(SOCKET)(fd)..." in some Microsoft // winsock2.h (TODO: improve heuristic of determining that the whole // expr is part of a single macro body expansion): - auto l1 = expr->getLocStart(); + auto l1 = compat::getBeginLoc(expr); while (compiler.getSourceManager().isMacroArgExpansion(l1)) { l1 = compiler.getSourceManager().getImmediateMacroCallerLoc(l1); } @@ -316,7 +316,7 @@ bool RedundantCast::VisitCStyleCastExpr(CStyleCastExpr const * expr) { while (compiler.getSourceManager().isMacroArgExpansion(l2)) { l2 = compiler.getSourceManager().getImmediateMacroCallerLoc(l2); } - auto l3 = expr->getLocEnd(); + auto l3 = compat::getEndLoc(expr); while (compiler.getSourceManager().isMacroArgExpansion(l3)) { l3 = compiler.getSourceManager().getImmediateMacroCallerLoc(l3); } @@ -445,7 +445,7 @@ bool RedundantCast::VisitCXXStaticCastExpr(CXXStaticCastExpr const * expr) { // h=b5889d25e9bf944a89fdd7bcabf3b6c6f6bb6f7c> "assert: Support types // without operator== (int) [BZ #21972]": if (t1->isBooleanType() && t2->isBooleanType()) { - auto loc = expr->getLocStart(); + auto loc = compat::getBeginLoc(expr); if (compiler.getSourceManager().isMacroBodyExpansion(loc) && (Lexer::getImmediateMacroName( loc, compiler.getSourceManager(), compiler.getLangOpts()) @@ -477,13 +477,13 @@ bool RedundantCast::VisitCXXReinterpretCastExpr( return true; } if (rewriter != nullptr) { - auto loc = expr->getLocStart(); + auto loc = compat::getBeginLoc(expr); while (compiler.getSourceManager().isMacroArgExpansion(loc)) { loc = compiler.getSourceManager().getImmediateMacroCallerLoc( loc); } if (compiler.getSourceManager().isMacroBodyExpansion(loc)) { - auto loc2 = expr->getLocEnd(); + auto loc2 = compat::getEndLoc(expr); while (compiler.getSourceManager().isMacroArgExpansion(loc2)) { loc2 = compiler.getSourceManager() .getImmediateMacroCallerLoc(loc2); @@ -665,8 +665,8 @@ bool RedundantCast::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr const * exp // // in sal/osl/unx/socket.cxx: //TODO: Better check that sub is exactly an expansion of FD_ISSET: - if (sub->getLocEnd().isMacroID()) { - for (auto loc = sub->getLocStart(); + if (compat::getEndLoc(sub).isMacroID()) { + for (auto loc = compat::getBeginLoc(sub); loc.isMacroID() && (compiler.getSourceManager() .isAtStartOfImmediateMacroExpansion(loc)); diff --git a/compilerplugins/clang/redundantinline.cxx b/compilerplugins/clang/redundantinline.cxx index 67347febb443..70cdbd6fdce6 100644 --- a/compilerplugins/clang/redundantinline.cxx +++ b/compilerplugins/clang/redundantinline.cxx @@ -35,18 +35,18 @@ public: { return true; } - auto l1 = unwindToQObject(decl->getLocStart()); - if (l1.isValid() && l1 == unwindToQObject(decl->getLocEnd())) { + auto l1 = unwindToQObject(compat::getBeginLoc(decl)); + if (l1.isValid() && l1 == unwindToQObject(compat::getEndLoc(decl))) { return true; } SourceLocation inlineLoc; unsigned n; auto end = Lexer::getLocForEndOfToken( - compiler.getSourceManager().getExpansionLoc(decl->getLocEnd()), 0, + compiler.getSourceManager().getExpansionLoc(compat::getEndLoc(decl)), 0, compiler.getSourceManager(), compiler.getLangOpts()); assert(end.isValid()); for (auto loc = compiler.getSourceManager().getExpansionLoc( - decl->getLocStart()); + compat::getBeginLoc(decl)); loc != end; loc = loc.getLocWithOffset(std::max<unsigned>(n, 1))) { n = Lexer::MeasureTokenLength( @@ -102,7 +102,7 @@ public: report( DiagnosticsEngine::Warning, "function definition redundantly declared 'inline'", - inlineLoc.isValid() ? inlineLoc : decl->getLocStart()) + inlineLoc.isValid() ? inlineLoc : compat::getBeginLoc(decl)) << decl->getSourceRange(); return true; } diff --git a/compilerplugins/clang/redundantpointerops.cxx b/compilerplugins/clang/redundantpointerops.cxx index 0340b7c12c19..1c28052f046a 100644 --- a/compilerplugins/clang/redundantpointerops.cxx +++ b/compilerplugins/clang/redundantpointerops.cxx @@ -63,7 +63,7 @@ bool RedundantPointerOps::VisitMemberExpr(MemberExpr const * memberExpr) { if (ignoreLocation(memberExpr)) return true; - if (memberExpr->getLocStart().isMacroID()) + if (compat::getBeginLoc(memberExpr).isMacroID()) return true; auto base = memberExpr->getBase()->IgnoreParenImpCasts(); //parentStmt(parentStmt(memberExpr))->dump(); @@ -74,7 +74,7 @@ bool RedundantPointerOps::VisitMemberExpr(MemberExpr const * memberExpr) if (unaryOp->getOpcode() == UO_AddrOf) report( DiagnosticsEngine::Warning, "'&' followed by '->', rather use '.'", - memberExpr->getLocStart()) + compat::getBeginLoc(memberExpr)) << memberExpr->getSourceRange(); } @@ -83,7 +83,7 @@ bool RedundantPointerOps::VisitMemberExpr(MemberExpr const * memberExpr) if (operatorCallExpr->getOperator() == OO_Amp) report( DiagnosticsEngine::Warning, "'&' followed by '->', rather use '.'", - memberExpr->getLocStart()) + compat::getBeginLoc(memberExpr)) << memberExpr->getSourceRange(); } @@ -107,7 +107,7 @@ bool RedundantPointerOps::VisitUnaryOperator(UnaryOperator const * unaryOperator { if (ignoreLocation(unaryOperator)) return true; - if (unaryOperator->getLocStart().isMacroID()) + if (compat::getBeginLoc(unaryOperator).isMacroID()) return true; if (unaryOperator->getOpcode() != UO_Deref) return true; @@ -117,7 +117,7 @@ bool RedundantPointerOps::VisitUnaryOperator(UnaryOperator const * unaryOperator report( DiagnosticsEngine::Warning, "'&' followed by '*', rather use '.'", - unaryOperator->getLocStart()) + compat::getBeginLoc(unaryOperator)) << unaryOperator->getSourceRange(); return true; } diff --git a/compilerplugins/clang/refcounting.cxx b/compilerplugins/clang/refcounting.cxx index f4e7e8e5929b..426127c76862 100644 --- a/compilerplugins/clang/refcounting.cxx +++ b/compilerplugins/clang/refcounting.cxx @@ -357,7 +357,7 @@ bool RefCounting::visitTemporaryObjectExpr(Expr const * expr) { DiagnosticsEngine::Warning, ("Temporary object of SvRefBase subclass %0 being directly stack" " managed, should be managed via tools::SvRef"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << t.getUnqualifiedType() << expr->getSourceRange(); } else if (containsSalhelperReferenceObjectSubclass(t.getTypePtr())) { report( @@ -365,7 +365,7 @@ bool RefCounting::visitTemporaryObjectExpr(Expr const * expr) { ("Temporary object of salhelper::SimpleReferenceObject subclass %0" " being directly stack managed, should be managed via" " rtl::Reference"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << t.getUnqualifiedType() << expr->getSourceRange(); } else if (containsXInterfaceSubclass(t)) { report( @@ -373,7 +373,7 @@ bool RefCounting::visitTemporaryObjectExpr(Expr const * expr) { ("Temporary object of css::uno::XInterface subclass %0 being" " directly stack managed, should be managed via" " css::uno::Reference"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << t.getUnqualifiedType() << expr->getSourceRange(); } return true; diff --git a/compilerplugins/clang/rendercontext.cxx b/compilerplugins/clang/rendercontext.cxx index c0f3acf4f3cc..ada566561377 100644 --- a/compilerplugins/clang/rendercontext.cxx +++ b/compilerplugins/clang/rendercontext.cxx @@ -121,7 +121,7 @@ bool RenderContext::VisitCXXMemberCallExpr(const CXXMemberCallExpr* pCXXMemberCa report( DiagnosticsEngine::Warning, "Should be calling OutputDevice method through RenderContext.", - pCXXMemberCallExpr->getLocStart()) + compat::getBeginLoc(pCXXMemberCallExpr)) << pCXXMemberCallExpr->getSourceRange(); return true; } diff --git a/compilerplugins/clang/returnconstant.cxx b/compilerplugins/clang/returnconstant.cxx index 0c6e747bc348..eff3495191fd 100644 --- a/compilerplugins/clang/returnconstant.cxx +++ b/compilerplugins/clang/returnconstant.cxx @@ -552,10 +552,11 @@ bool ReturnConstant::TraverseCXXMethodDecl(CXXMethodDecl* functionDecl) // ignore LINK macro stuff std::string aImmediateMacro = ""; - if (compiler.getSourceManager().isMacroBodyExpansion(functionDecl->getLocStart())) + if (compiler.getSourceManager().isMacroBodyExpansion(compat::getBeginLoc(functionDecl))) { - StringRef name{ Lexer::getImmediateMacroName( - functionDecl->getLocStart(), compiler.getSourceManager(), compiler.getLangOpts()) }; + StringRef name{ Lexer::getImmediateMacroName(compat::getBeginLoc(functionDecl), + compiler.getSourceManager(), + compiler.getLangOpts()) }; aImmediateMacro = name; if (name.startswith("IMPL_LINK_")) { @@ -571,11 +572,11 @@ bool ReturnConstant::TraverseCXXMethodDecl(CXXMethodDecl* functionDecl) { report(DiagnosticsEngine::Warning, "Method only returns a single constant value %0, does it make sense?", - functionDecl->getLocStart()) + compat::getBeginLoc(functionDecl)) << *rContext.values.begin() << functionDecl->getSourceRange(); if (functionDecl != functionDecl->getCanonicalDecl()) report(DiagnosticsEngine::Note, "decl here", - functionDecl->getCanonicalDecl()->getLocStart()) + compat::getBeginLoc(functionDecl->getCanonicalDecl())) << functionDecl->getCanonicalDecl()->getSourceRange(); } m_functionStack.pop_back(); diff --git a/compilerplugins/clang/salbool.cxx b/compilerplugins/clang/salbool.cxx index 02cc2f609661..f0024e96da27 100644 --- a/compilerplugins/clang/salbool.cxx +++ b/compilerplugins/clang/salbool.cxx @@ -200,7 +200,7 @@ void SalBool::run() { if (compiler.getLangOpts().CPlusPlus) { TraverseDecl(compiler.getASTContext().getTranslationUnitDecl()); for (auto decl: varDecls_) { - SourceLocation loc { decl->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(decl) }; TypeSourceInfo * tsi = decl->getTypeSourceInfo(); if (tsi != nullptr) { SourceLocation l { @@ -321,7 +321,7 @@ bool SalBool::VisitCStyleCastExpr(CStyleCastExpr * expr) { return true; } if (isSalBool(expr->getType())) { - SourceLocation loc { expr->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(expr) }; while (compiler.getSourceManager().isMacroArgExpansion(loc)) { loc = compiler.getSourceManager().getImmediateMacroCallerLoc(loc); } @@ -334,7 +334,7 @@ bool SalBool::VisitCStyleCastExpr(CStyleCastExpr * expr) { if (!isSharedCAndCppCode(callLoc)) { SourceLocation argLoc; if (compat::isMacroArgExpansion( - compiler, expr->getLocStart(), &argLoc) + compiler, compat::getBeginLoc(expr), &argLoc) //TODO: check it's the complete (first) arg to the macro && (Lexer::getImmediateMacroName( argLoc, compiler.getSourceManager(), @@ -373,7 +373,7 @@ bool SalBool::VisitCStyleCastExpr(CStyleCastExpr * expr) { report( DiagnosticsEngine::Warning, "CStyleCastExpr, suspicious cast from %0 to %1", - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSubExpr()->IgnoreParenImpCasts()->getType() << expr->getType() << expr->getSourceRange(); } @@ -386,12 +386,12 @@ bool SalBool::VisitCXXStaticCastExpr(CXXStaticCastExpr * expr) { } if (isSalBool(expr->getType()) && !isInSpecialMainFile( - compiler.getSourceManager().getSpellingLoc(expr->getLocStart()))) + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(expr)))) { report( DiagnosticsEngine::Warning, "CXXStaticCastExpr, suspicious cast from %0 to %1", - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSubExpr()->IgnoreParenImpCasts()->getType() << expr->getType() << expr->getSourceRange(); } @@ -406,7 +406,7 @@ bool SalBool::VisitCXXFunctionalCastExpr(CXXFunctionalCastExpr * expr) { report( DiagnosticsEngine::Warning, "CXXFunctionalCastExpr, suspicious cast from %0 to %1", - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSubExpr()->IgnoreParenImpCasts()->getType() << expr->getType() << expr->getSourceRange(); } @@ -420,7 +420,7 @@ bool SalBool::VisitImplicitCastExpr(ImplicitCastExpr * expr) { if (!isSalBool(expr->getType())) { return true; } - auto l = expr->getLocStart(); + auto l = compat::getBeginLoc(expr); while (compiler.getSourceManager().isMacroArgExpansion(l)) { l = compiler.getSourceManager().getImmediateMacroCallerLoc(l); } @@ -455,7 +455,7 @@ bool SalBool::VisitImplicitCastExpr(ImplicitCastExpr * expr) { } report( DiagnosticsEngine::Warning, "conversion from %0 to sal_Bool", - expr->getLocStart()) + compat::getBeginLoc(expr)) << t << expr->getSourceRange(); return true; } @@ -528,7 +528,7 @@ bool SalBool::VisitParmVarDecl(ParmVarDecl const * decl) { { OverrideKind k = getOverrideKind(f); if (k != OverrideKind::YES) { - SourceLocation loc { decl->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(decl) }; TypeSourceInfo * tsi = decl->getTypeSourceInfo(); if (tsi != nullptr) { SourceLocation l { @@ -611,7 +611,7 @@ bool SalBool::VisitVarDecl(VarDecl const * decl) { if (!decl->isExternC() && (isSalBool(decl->getType()) || isSalBoolArray(decl->getType())) && !isInSpecialMainFile( - compiler.getSourceManager().getSpellingLoc(decl->getLocStart()))) + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(decl)))) { varDecls_.insert(decl); } @@ -628,7 +628,7 @@ bool SalBool::VisitFieldDecl(FieldDecl const * decl) { } if ((isSalBool(decl->getType()) || isSalBoolArray(decl->getType())) && !isInSpecialMainFile( - compiler.getSourceManager().getSpellingLoc(decl->getLocStart()))) + compiler.getSourceManager().getSpellingLoc(compat::getBeginLoc(decl)))) { TagDecl const * td = dyn_cast<TagDecl>(decl->getDeclContext()); assert(td != nullptr); @@ -637,7 +637,7 @@ bool SalBool::VisitFieldDecl(FieldDecl const * decl) { compiler.getSourceManager().getSpellingLoc( decl->getLocation())))) { - SourceLocation loc { decl->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(decl) }; TypeSourceInfo * tsi = decl->getTypeSourceInfo(); if (tsi != nullptr) { SourceLocation l { @@ -698,7 +698,7 @@ bool SalBool::VisitFunctionDecl(FunctionDecl const * decl) { || (isInUnoIncludeFile(f) && (!f->isInlined() || f->hasAttr<DeprecatedAttr>())))) { - SourceLocation loc { decl->getLocStart() }; + SourceLocation loc { compat::getBeginLoc(decl) }; SourceLocation l { compiler.getSourceManager().getExpansionLoc( loc) }; SourceLocation end { compiler.getSourceManager().getExpansionLoc( @@ -749,11 +749,11 @@ bool SalBool::VisitValueDecl(ValueDecl const * decl) { if (ignoreLocation(decl)) { return true; } - if (isSalBool(decl->getType()) && !rewrite(decl->getLocStart())) { + if (isSalBool(decl->getType()) && !rewrite(compat::getBeginLoc(decl))) { report( DiagnosticsEngine::Warning, "ValueDecl, use \"bool\" instead of \"sal_Bool\"", - decl->getLocStart()) + compat::getBeginLoc(decl)) << decl->getSourceRange(); } return true; diff --git a/compilerplugins/clang/salcall.cxx b/compilerplugins/clang/salcall.cxx index a84cbd9825d5..2a6160162527 100644 --- a/compilerplugins/clang/salcall.cxx +++ b/compilerplugins/clang/salcall.cxx @@ -382,7 +382,7 @@ bool SalCall::isSalCallFunction(FunctionDecl const* functionDecl, SourceLocation // qualified names this will point after the qualifiers, but needlessly including those in // the search should be harmless---modulo issues with using "SAL_CALL" as the name of a // function-like macro parameter as discussed below): - endLoc = functionDecl->getNameInfo().getLocStart(); + endLoc = compat::getBeginLoc(functionDecl->getNameInfo()); while (SM.isMacroArgExpansion(endLoc, &endLoc)) { } @@ -463,7 +463,7 @@ bool SalCall::isSalCallFunction(FunctionDecl const* functionDecl, SourceLocation // Stop searching for "SAL_CALL" at the start of the function declaration's name (for // qualified names this will point after the qualifiers, but needlessly including those in // the search should be harmless): - endLoc = functionDecl->getNameInfo().getLocStart(); + endLoc = compat::getBeginLoc(functionDecl->getNameInfo()); while (endLoc.isMacroID() && SM.isAtStartOfImmediateMacroExpansion(endLoc, &endLoc)) { } diff --git a/compilerplugins/clang/sallogareas.cxx b/compilerplugins/clang/sallogareas.cxx index e18f100043e5..9100b8973f00 100644 --- a/compilerplugins/clang/sallogareas.cxx +++ b/compilerplugins/clang/sallogareas.cxx @@ -80,7 +80,7 @@ bool SalLogAreas::VisitCallExpr( const CallExpr* call ) // from the same macro should be the same). if( kind == LogCallKind::Sal ) { - SourceLocation expansionLocation = compiler.getSourceManager().getExpansionLoc( call->getLocStart()); + SourceLocation expansionLocation = compiler.getSourceManager().getExpansionLoc( compat::getBeginLoc(call)); if( expansionLocation == lastSalDetailLogStreamMacro ) return true; lastSalDetailLogStreamMacro = expansionLocation; @@ -91,7 +91,7 @@ bool SalLogAreas::VisitCallExpr( const CallExpr* call ) checkArea( area->getBytes(), area->getExprLoc()); else report( DiagnosticsEngine::Warning, "unsupported string literal kind (plugin needs fixing?)", - area->getLocStart()); + compat::getBeginLoc(area)); return true; } if( loplugin::DeclCheck(inFunction).Function("log").Namespace("detail").Namespace("sal").GlobalNamespace() @@ -101,7 +101,7 @@ bool SalLogAreas::VisitCallExpr( const CallExpr* call ) Expr::NPC_ValueDependentIsNotNull ) != Expr::NPCK_NotNull ) { // If the area argument is a null pointer, that is allowed only for SAL_DEBUG. const SourceManager& source = compiler.getSourceManager(); - for( SourceLocation loc = call->getLocStart(); + for( SourceLocation loc = compat::getBeginLoc(call); loc.isMacroID(); loc = compat::getImmediateExpansionRange(source, loc ).first ) { @@ -110,11 +110,11 @@ bool SalLogAreas::VisitCallExpr( const CallExpr* call ) return true; // ok } report( DiagnosticsEngine::Warning, "missing log area", - call->getArg( 1 )->IgnoreParenImpCasts()->getLocStart()); + compat::getBeginLoc(call->getArg( 1 )->IgnoreParenImpCasts())); return true; } report( DiagnosticsEngine::Warning, "cannot analyse log area argument (plugin needs fixing?)", - call->getLocStart()); + compat::getBeginLoc(call)); return true; } diff --git a/compilerplugins/clang/salunicodeliteral.cxx b/compilerplugins/clang/salunicodeliteral.cxx index 529d20c970eb..cf06b6ccaad7 100644 --- a/compilerplugins/clang/salunicodeliteral.cxx +++ b/compilerplugins/clang/salunicodeliteral.cxx @@ -71,7 +71,7 @@ private: t = tt->desugar(); } auto const e1 = expr->getSubExprAsWritten(); - auto const loc = e1->getLocStart(); + auto const loc = compat::getBeginLoc(e1); if (loc.isMacroID() && compiler.getSourceManager().isAtStartOfImmediateMacroExpansion( loc)) diff --git a/compilerplugins/clang/sfxpoolitem.cxx b/compilerplugins/clang/sfxpoolitem.cxx index d269070e03fe..f41a006f30b0 100644 --- a/compilerplugins/clang/sfxpoolitem.cxx +++ b/compilerplugins/clang/sfxpoolitem.cxx @@ -122,7 +122,7 @@ bool SfxPoolItem::VisitCXXRecordDecl(const CXXRecordDecl* decl) report( DiagnosticsEngine::Warning, "SfxPoolItem subclass %0 declares new fields, but does not override operator==", - decl->getLocStart()) + compat::getBeginLoc(decl)) << decl->getQualifiedNameAsString() << decl->getSourceRange(); return true; } diff --git a/compilerplugins/clang/shouldreturnbool.cxx b/compilerplugins/clang/shouldreturnbool.cxx index ea9e696674de..937dba126da0 100644 --- a/compilerplugins/clang/shouldreturnbool.cxx +++ b/compilerplugins/clang/shouldreturnbool.cxx @@ -111,12 +111,12 @@ public: continue; report(DiagnosticsEngine::Warning, "only returning one or zero is an indication you want to return bool", - functionDecl->getLocStart()) + compat::getBeginLoc(functionDecl)) << functionDecl->getSourceRange(); if (canonicalDecl->getLocation() != functionDecl->getLocation()) { report(DiagnosticsEngine::Note, "canonical function declaration here", - canonicalDecl->getLocStart()) + compat::getBeginLoc(canonicalDecl)) << canonicalDecl->getSourceRange(); } } diff --git a/compilerplugins/clang/simplifybool.cxx b/compilerplugins/clang/simplifybool.cxx index 9167014f8c84..23f75a9a6705 100644 --- a/compilerplugins/clang/simplifybool.cxx +++ b/compilerplugins/clang/simplifybool.cxx @@ -116,7 +116,7 @@ bool SimplifyBool::VisitUnaryLNot(UnaryOperator const * expr) { // Ignore macros, otherwise // OSL_ENSURE(!b, ...); // triggers. - if (e->getLocStart().isMacroID()) + if (compat::getBeginLoc(e).isMacroID()) return true; // double logical not of an int is an idiom to convert to bool auto const sub = ignoreAllImplicit(e); @@ -126,7 +126,7 @@ bool SimplifyBool::VisitUnaryLNot(UnaryOperator const * expr) { DiagnosticsEngine::Warning, ("double logical negation expression of the form '!!A' (with A of type" " %0) can %select{logically|literally}1 be simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << sub->getType() << sub->getType()->isBooleanType() << expr->getSourceRange(); @@ -136,7 +136,7 @@ bool SimplifyBool::VisitUnaryLNot(UnaryOperator const * expr) { // Ignore macros, otherwise // OSL_ENSURE(!b, ...); // triggers. - if (binaryOp->getLocStart().isMacroID()) + if (compat::getBeginLoc(binaryOp).isMacroID()) return true; auto t = binaryOp->getLHS()->IgnoreImpCasts()->getType()->getUnqualifiedDesugaredType(); // RecordType would require more smarts - we'd need to verify that an inverted operator actually existed @@ -151,7 +151,7 @@ bool SimplifyBool::VisitUnaryLNot(UnaryOperator const * expr) { report( DiagnosticsEngine::Warning, ("logical negation of comparison operator, can be simplified by inverting operator"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); } return true; @@ -178,7 +178,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'A < false' (with A of type" " %0) can logically be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -191,7 +191,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { ("less-than expression of the form 'A < true' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << (expr->getLHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -202,7 +202,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { ("less-than expression of the form '!A < true' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -218,7 +218,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'false < A' (with A of type" " %0) can %select{logically|literally}1 be simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getRHS()->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -228,7 +228,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'false < false' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -236,7 +236,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'false < true' can" " literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -248,7 +248,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'true < A' (with A of type" " %0) can logically be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -257,7 +257,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'true < false' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -265,7 +265,7 @@ bool SimplifyBool::VisitBinLT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than expression of the form 'true < true' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -296,7 +296,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { ("greater-than expression of the form 'A > false' (with A of" " type %0) can %select{logically|literally}1 be simplified as" " 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getLHS()->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -306,7 +306,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'A > true' (with A of" " type %0) can logically be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -319,7 +319,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'false > A' (with A of" " type %0) can logically be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -328,7 +328,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'false > false' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -336,7 +336,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'false > true' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -352,7 +352,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { ("greater-than expression of the form 'true > A' (with" " A of type %0) can %select{logically|literally}1 be" " simplified as '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << (expr->getRHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -363,7 +363,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { ("greater-than expression of the form 'true > !A' (with" " A of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -375,7 +375,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'true > false' can" " literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -383,7 +383,7 @@ bool SimplifyBool::VisitBinGT(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than expression of the form 'true > true' can" " literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -418,7 +418,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { " false' (with A of type %0) can" " %select{logically|literally}1 be simplified as" " '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << (expr->getLHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -429,7 +429,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { ("less-than-or-equal-to expression of the form '!A <=" " false' (with A of type %0) can" " %select{logically|literally}1 be simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -441,7 +441,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'A <= true'" " (with A of type %0) can logically be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -454,7 +454,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'false <= A'" " (with A of type %0) can logically be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -463,7 +463,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'false <= false'" " can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -471,7 +471,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'false <= true'" " can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -484,7 +484,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { ("less-than-or-equal-to expression of the form 'true <= A'" " (with A of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getRHS()->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -494,7 +494,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'true <= false'" " can literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -502,7 +502,7 @@ bool SimplifyBool::VisitBinLE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("less-than-or-equal-to expression of the form 'true <= true'" " can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -532,7 +532,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'A >= false'" " (with A of type %0) can logically be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -542,7 +542,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { ("greater-than-or-equal-to expression of the form 'A >= true'" " (with A of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getLHS()->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -561,7 +561,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { " 'false >= A' (with A of type %0) can" " %select{logically|literally}1 be simplified as" " '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << (expr->getRHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -572,7 +572,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { ("greater-than-or-equal-to expression of the form" " 'false >= !A' (with A of type %0) can" " %select{logically|literally}1 be simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -584,7 +584,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'false >=" " false' can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -592,7 +592,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'false >=" " true' can literally be simplified as 'false'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -604,7 +604,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'true >= A'" " (with A of type %0) can logically be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << expr->getSourceRange(); break; @@ -613,7 +613,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'true >=" " false' can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; case Value::True: @@ -621,7 +621,7 @@ bool SimplifyBool::VisitBinGE(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("greater-than-or-equal-to expression of the form 'true >=" " true' can literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getSourceRange(); break; } @@ -655,7 +655,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { ("equal-to expression of the form 'A == false' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << (expr->getLHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -666,7 +666,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { ("equal-to expression of the form '!A == false' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -678,7 +678,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("equal-to expression of the form 'A == true' (with A of type" " %0) can %select{logically|literally}1 be simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getLHS()->IgnoreImpCasts()->getType() << expr->getLHS()->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -696,7 +696,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { ("equal-to expression of the form 'false == A' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as '!A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << expr->getRHS()->IgnoreImpCasts()->getType() << (expr->getRHS()->IgnoreImpCasts()->getType() ->isBooleanType()) @@ -707,7 +707,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { ("equal-to expression of the form 'false == !A' (with A" " of type %0) can %select{logically|literally}1 be" " simplified as 'A'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) << e->IgnoreImpCasts()->getType() << e->IgnoreImpCasts()->getType()->isBooleanType() << expr->getSourceRange(); @@ -719,7 +719,7 @@ bool SimplifyBool::VisitBinEQ(BinaryOperator const * expr) { DiagnosticsEngine::Warning, ("equal-to expression of the form 'false == false' can" " literally be simplified as 'true'"), - expr->getLocStart()) + compat::getBeginLoc(expr)) ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits