diff options
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp index 586d9d3af2a64..25d87f4acfc91 100644 --- a/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/PointerSortingChecker.cpp @@ -54,7 +54,7 @@ static void emitDiagnostics(const BoundNodes &Match, const Decl *D, OS.str(), Location, Range); } -auto callsName(const char *FunctionName) -> decltype(callee(functionDecl())) { +decltype(auto) callsName(const char *FunctionName) { return callee(functionDecl(hasName(FunctionName))); } @@ -86,8 +86,9 @@ auto matchSortWithPointers() -> decltype(decl()) { ))) )))); - auto PointerSortM = stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM)) - ).bind(WarnAtNode); + auto PointerSortM = traverse( + TK_AsIs, + stmt(callExpr(allOf(SortFuncM, IteratesPointerEltsM))).bind(WarnAtNode)); return decl(forEachDescendant(PointerSortM)); } @@ -108,6 +109,7 @@ void ento::registerPointerSortingChecker(CheckerManager &Mgr) { Mgr.registerChecker<PointerSortingChecker>(); } -bool ento::shouldRegisterPointerSortingChecker(const LangOptions &LO) { +bool ento::shouldRegisterPointerSortingChecker(const CheckerManager &mgr) { + const LangOptions &LO = mgr.getLangOpts(); return LO.CPlusPlus; } |