[PATCH] D63129: [clang-tidy] Fix invalid read on destruction
Nikolai Kosjar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 11 07:17:35 PDT 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rL363068: [clang-tidy] Fix invalid read on destruction (authored by nik, committed by ).
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D63129/new/
https://reviews.llvm.org/D63129
Files:
clang-tools-extra/trunk/clang-tidy/modernize/LoopConvertCheck.cpp
Index: clang-tools-extra/trunk/clang-tidy/modernize/LoopConvertCheck.cpp
===================================================================
--- clang-tools-extra/trunk/clang-tidy/modernize/LoopConvertCheck.cpp
+++ clang-tools-extra/trunk/clang-tidy/modernize/LoopConvertCheck.cpp
@@ -44,18 +44,22 @@
static const char DerefByRefResultName[] = "derefByRefResult";
// shared matchers
-static const TypeMatcher AnyType = anything();
+static const TypeMatcher AnyType() { return anything(); }
-static const StatementMatcher IntegerComparisonMatcher =
- expr(ignoringParenImpCasts(
- declRefExpr(to(varDecl(hasType(isInteger())).bind(ConditionVarName)))));
-
-static const DeclarationMatcher InitToZeroMatcher =
- varDecl(hasInitializer(ignoringParenImpCasts(integerLiteral(equals(0)))))
- .bind(InitVarName);
+static const StatementMatcher IntegerComparisonMatcher() {
+ return expr(ignoringParenImpCasts(
+ declRefExpr(to(varDecl(hasType(isInteger())).bind(ConditionVarName)))));
+}
+
+static const DeclarationMatcher InitToZeroMatcher() {
+ return varDecl(
+ hasInitializer(ignoringParenImpCasts(integerLiteral(equals(0)))))
+ .bind(InitVarName);
+}
-static const StatementMatcher IncrementVarMatcher =
- declRefExpr(to(varDecl(hasType(isInteger())).bind(IncrementVarName)));
+static const StatementMatcher IncrementVarMatcher() {
+ return declRefExpr(to(varDecl(hasType(isInteger())).bind(IncrementVarName)));
+}
/// \brief The matcher for loops over arrays.
///
@@ -81,15 +85,15 @@
return forStmt(
unless(isInTemplateInstantiation()),
- hasLoopInit(declStmt(hasSingleDecl(InitToZeroMatcher))),
+ hasLoopInit(declStmt(hasSingleDecl(InitToZeroMatcher()))),
hasCondition(anyOf(
binaryOperator(hasOperatorName("<"),
- hasLHS(IntegerComparisonMatcher),
+ hasLHS(IntegerComparisonMatcher()),
hasRHS(ArrayBoundMatcher)),
binaryOperator(hasOperatorName(">"), hasLHS(ArrayBoundMatcher),
- hasRHS(IntegerComparisonMatcher)))),
+ hasRHS(IntegerComparisonMatcher())))),
hasIncrement(unaryOperator(hasOperatorName("++"),
- hasUnaryOperand(IncrementVarMatcher))))
+ hasUnaryOperand(IncrementVarMatcher()))))
.bind(LoopNameArray);
}
@@ -190,7 +194,7 @@
hasIncrement(anyOf(
unaryOperator(hasOperatorName("++"),
hasUnaryOperand(declRefExpr(
- to(varDecl(hasType(pointsTo(AnyType)))
+ to(varDecl(hasType(pointsTo(AnyType())))
.bind(IncrementVarName))))),
cxxOperatorCallExpr(
hasOverloadedOperatorName("++"),
@@ -278,17 +282,17 @@
unless(isInTemplateInstantiation()),
hasLoopInit(
anyOf(declStmt(declCountIs(2),
- containsDeclaration(0, InitToZeroMatcher),
+ containsDeclaration(0, InitToZeroMatcher()),
containsDeclaration(1, EndDeclMatcher)),
- declStmt(hasSingleDecl(InitToZeroMatcher)))),
+ declStmt(hasSingleDecl(InitToZeroMatcher())))),
hasCondition(anyOf(
binaryOperator(hasOperatorName("<"),
- hasLHS(IntegerComparisonMatcher),
+ hasLHS(IntegerComparisonMatcher()),
hasRHS(IndexBoundMatcher)),
binaryOperator(hasOperatorName(">"), hasLHS(IndexBoundMatcher),
- hasRHS(IntegerComparisonMatcher)))),
+ hasRHS(IntegerComparisonMatcher())))),
hasIncrement(unaryOperator(hasOperatorName("++"),
- hasUnaryOperand(IncrementVarMatcher))))
+ hasUnaryOperand(IncrementVarMatcher()))))
.bind(LoopNamePseudoArray);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D63129.204062.patch
Type: text/x-patch
Size: 4316 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190611/7c950312/attachment.bin>
More information about the llvm-commits
mailing list