summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp2
-rw-r--r--clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp10
2 files changed, 11 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
index ac8210f54c9..0058ea6ba60 100644
--- a/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/LoopConvertUtils.cpp
@@ -363,7 +363,7 @@ static bool isAliasDecl(const Decl *TheDecl, const VarDecl *IndexVar) {
return isDereferenceOfOpCall(OpCall, IndexVar);
if (OpCall->getOperator() == OO_Subscript) {
assert(OpCall->getNumArgs() == 2);
- return true;
+ return isIndexInSubscriptExpr(OpCall->getArg(1), IndexVar);
}
break;
}
diff --git a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp
index 6bcb931e8cf..85711b6e560 100644
--- a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp
+++ b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp
@@ -202,6 +202,16 @@ void refs_and_vals() {
// CHECK-FIXES-NOT: MutableVal &{{[a-z_]+}} =
// CHECK-FIXES: {}
// CHECK-FIXES-NEXT: alias.x = 0;
+
+ dependent<int> dep, other;
+ for (dependent<int>::iterator it = dep.begin(), e = dep.end(); it != e; ++it) {
+ printf("%d\n", *it);
+ const int& idx = other[0];
+ }
+ // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead
+ // CHECK-FIXES: for (auto & elem : dep)
+ // CHECK-FIXES-NEXT: printf("%d\n", elem);
+ // CHECK-FIXES-NEXT: const int& idx = other[0];
}
} // namespace NamingAlias
OpenPOWER on IntegriCloud