diff options
author | Tim Shen <timshen91@gmail.com> | 2016-06-21 20:11:20 +0000 |
---|---|---|
committer | Tim Shen <timshen91@gmail.com> | 2016-06-21 20:11:20 +0000 |
commit | 325c7274809b637e86a8e81e7c78667d939440a8 (patch) | |
tree | fee29116dba10672bf21056fc5fdf9d145f7c099 /clang-tools-extra/clang-tidy/modernize | |
parent | 8b65f102cd4c5a066195de00379f74411d8c7fcb (diff) | |
download | bcm5719-llvm-325c7274809b637e86a8e81e7c78667d939440a8.tar.gz bcm5719-llvm-325c7274809b637e86a8e81e7c78667d939440a8.zip |
Fix clang-tidy patterns to adapt to newly added ExprWithCleanups nodes.
Summary: This is a fix for the new ExprWithCleanups introduced by clang's temporary variable lifetime marks change.
Reviewers: bkramer, sbenza, angelgarcia, alexth
Subscribers: rsmith, cfe-commits
Differential Revision: http://reviews.llvm.org/D21243
llvm-svn: 273310
Diffstat (limited to 'clang-tools-extra/clang-tidy/modernize')
3 files changed, 6 insertions, 3 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp index bd476dd5e79..ad922382fcd 100644 --- a/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertCheck.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// #include "LoopConvertCheck.h" +#include "../utils/Matchers.h" #include "clang/AST/ASTContext.h" #include "clang/ASTMatchers/ASTMatchFinder.h" @@ -141,10 +142,10 @@ StatementMatcher makeIteratorLoopMatcher() { StatementMatcher IteratorComparisonMatcher = expr( ignoringParenImpCasts(declRefExpr(to(varDecl().bind(ConditionVarName))))); - StatementMatcher OverloadedNEQMatcher = + auto OverloadedNEQMatcher = matchers::ignoringImplicit( cxxOperatorCallExpr(hasOverloadedOperatorName("!="), argumentCountIs(2), hasArgument(0, IteratorComparisonMatcher), - hasArgument(1, IteratorBoundMatcher)); + hasArgument(1, IteratorBoundMatcher))); // This matcher tests that a declaration is a CXXRecordDecl that has an // overloaded operator*(). If the operator*() returns by value instead of by diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp index 75133df9078..3fee2c44c7e 100644 --- a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp +++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp @@ -156,7 +156,7 @@ bool DeclFinderASTVisitor::VisitTypeLoc(TypeLoc TL) { const Expr *digThroughConstructors(const Expr *E) { if (!E) return nullptr; - E = E->IgnoreParenImpCasts(); + E = E->IgnoreImplicit(); if (const auto *ConstructExpr = dyn_cast<CXXConstructExpr>(E)) { // The initial constructor must take exactly one parameter, but base class // and deferred constructors can take more. diff --git a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp index 1f1c140f027..8c43e6b754f 100644 --- a/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp +++ b/clang-tools-extra/clang-tidy/modernize/UseAutoCheck.cpp @@ -42,6 +42,8 @@ AST_MATCHER(VarDecl, hasWrittenNonListInitializer) { if (!Init) return false; + Init = Init->IgnoreImplicit(); + // The following test is based on DeclPrinter::VisitVarDecl() to find if an // initializer is implicit or not. if (const auto *Construct = dyn_cast<CXXConstructExpr>(Init)) { |