diff options
author | Manuel Klimek <klimek@google.com> | 2015-09-23 22:28:14 +0000 |
---|---|---|
committer | Manuel Klimek <klimek@google.com> | 2015-09-23 22:28:14 +0000 |
commit | b457b68f8d2d5769127a15aacc6f6071ea4ebf57 (patch) | |
tree | 235ac7b0d35d2285e4727719ee5613e67a0545c5 /clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp | |
parent | beb5bccf88876eb3087674429ca71c4a6bee6b7d (diff) | |
download | bcm5719-llvm-b457b68f8d2d5769127a15aacc6f6071ea4ebf57.tar.gz bcm5719-llvm-b457b68f8d2d5769127a15aacc6f6071ea4ebf57.zip |
Fix loop-convert for trivially copyable types.
Previously, we would rewrite:
void f(const vector<int> &v) {
for (size_t i = 0; i < v.size(); ++i) {
to
for (const auto &elem : v) {
Now we rewrite it to:
for (auto elem : v) {
(and similarly for iterator based loops).
llvm-svn: 248438
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp index d3908b9126b..515f05cf008 100644 --- a/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp +++ b/clang-tools-extra/test/clang-tidy/modernize-loop-convert-basic.cpp @@ -102,7 +102,7 @@ void constArray() { printf("2 * %d = %d\n", constArr[i], constArr[i] + constArr[i]); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : constArr) + // CHECK-FIXES: for (auto elem : constArr) // CHECK-FIXES-NEXT: printf("2 * %d = %d\n", elem, elem + elem); } @@ -333,7 +333,7 @@ void different_type() { printf("s has value %d\n", (*it).x); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : s) + // CHECK-FIXES: for (auto elem : s) // CHECK-FIXES-NEXT: printf("s has value %d\n", (elem).x); S *ps; @@ -341,7 +341,7 @@ void different_type() { printf("s has value %d\n", (*it).x); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & p : *ps) + // CHECK-FIXES: for (auto p : *ps) // CHECK-FIXES-NEXT: printf("s has value %d\n", (p).x); // v.begin() returns a user-defined type 'iterator' which, since it's @@ -406,12 +406,12 @@ public: for (const_iterator I = begin(), E = end(); I != E; ++I) (void) *I; // CHECK-MESSAGES: :[[@LINE-2]]:5: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : *this) + // CHECK-FIXES: for (auto elem : *this) for (const_iterator I = C::begin(), E = C::end(); I != E; ++I) (void) *I; // CHECK-MESSAGES: :[[@LINE-2]]:5: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : *this) + // CHECK-FIXES: for (auto elem : *this) for (const_iterator I = begin(), E = end(); I != E; ++I) { (void) *I; @@ -508,7 +508,7 @@ void constness() { sum += constv[i] + 2; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : constv) + // CHECK-FIXES: for (auto elem : constv) // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", elem); // CHECK-FIXES-NEXT: sum += elem + 2; @@ -517,7 +517,7 @@ void constness() { sum += constv.at(i) + 2; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : constv) + // CHECK-FIXES: for (auto elem : constv) // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", elem); // CHECK-FIXES-NEXT: sum += elem + 2; @@ -526,7 +526,7 @@ void constness() { sum += pconstv->at(i) + 2; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : *pconstv) + // CHECK-FIXES: for (auto elem : *pconstv) // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", elem); // CHECK-FIXES-NEXT: sum += elem + 2; @@ -539,7 +539,7 @@ void constness() { sum += (*pconstv)[i] + 2; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : *pconstv) + // CHECK-FIXES: for (auto elem : *pconstv) // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", elem); // CHECK-FIXES-NEXT: sum += elem + 2; } @@ -552,7 +552,14 @@ void ConstRef(const dependent<int>& ConstVRef) { sum += ConstVRef[i]; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : ConstVRef) + // CHECK-FIXES: for (auto elem : ConstVRef) + // CHECK-FIXES-NEXT: sum += elem; + + for (auto I = ConstVRef.begin(), E = ConstVRef.end(); I != E; ++I) { + sum += *I; + } + // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead + // CHECK-FIXES: for (auto elem : ConstVRef) // CHECK-FIXES-NEXT: sum += elem; } @@ -611,7 +618,7 @@ void NoBeginEndTest() { for (unsigned i = 0, e = const_CBE.size(); i < e; ++i) printf("%d\n", const_CBE[i]); // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (const auto & elem : const_CBE) + // CHECK-FIXES: for (auto elem : const_CBE) // CHECK-FIXES-NEXT: printf("%d\n", elem); } |