diff options
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp')
-rw-r--r-- | clang-tools-extra/test/clang-tidy/modernize-loop-convert-extra.cpp | 244 |
1 files changed, 122 insertions, 122 deletions
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 254c86177c6..2d4d73e0ff8 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 @@ -14,9 +14,9 @@ void f() { int B = Arr[I][A]; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Arr) + // CHECK-FIXES: for (auto & I : Arr) // CHECK-FIXES-NEXT: int A = 0; - // CHECK-FIXES-NEXT: int B = Elem[A]; + // CHECK-FIXES-NEXT: int B = I[A]; for (int J = 0; J < M; ++J) { int A = 0; @@ -64,10 +64,10 @@ void aliasing() { int Z = Arr[I].X + T.X; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Arr) - // CHECK-FIXES-NEXT: Val &T = Elem; + // CHECK-FIXES: for (auto & I : Arr) + // CHECK-FIXES-NEXT: Val &T = I; // CHECK-FIXES-NEXT: int Y = T.X; - // CHECK-FIXES-NEXT: int Z = Elem.X + T.X; + // CHECK-FIXES-NEXT: int Z = I.X + T.X; for (int I = 0; I < N; ++I) { Val T = Arr[I]; @@ -75,10 +75,10 @@ void aliasing() { int Z = Arr[I].X + T.X; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Arr) - // CHECK-FIXES-NEXT: Val T = Elem; + // CHECK-FIXES: for (auto & I : Arr) + // CHECK-FIXES-NEXT: Val T = I; // CHECK-FIXES-NEXT: int Y = T.X; - // CHECK-FIXES-NEXT: int Z = Elem.X + T.X; + // CHECK-FIXES-NEXT: int Z = I.X + T.X; // The same for pseudo-arrays like std::vector<T> (or here dependent<Val>) // which provide a subscript operator[]. @@ -108,8 +108,8 @@ void aliasing() { int Y = T.X; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Arr) - // CHECK-FIXES-NEXT: Val &T = func(Elem); + // CHECK-FIXES: for (auto & I : Arr) + // CHECK-FIXES-NEXT: Val &T = func(I); // CHECK-FIXES-NEXT: int Y = T.X; int IntArr[N]; @@ -164,8 +164,8 @@ void aliasing() { IntRef Int(IntArr[I]); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : IntArr) - // CHECK-FIXES-NEXT: IntRef Int(Elem); + // CHECK-FIXES: for (int I : IntArr) + // CHECK-FIXES-NEXT: IntRef Int(I); // Ensure that removing the alias doesn't leave empty lines behind. for (int I = 0; I < N; ++I) { @@ -227,8 +227,8 @@ void refs_and_vals() { unsigned Othersize = Other.size(); } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Dep) - // CHECK-FIXES-NEXT: printf("%d\n", Elem); + // CHECK-FIXES: for (int & It : Dep) + // CHECK-FIXES-NEXT: printf("%d\n", It); // CHECK-FIXES-NEXT: const int& Idx = Other[0]; // CHECK-FIXES-NEXT: unsigned Othersize = Other.size(); @@ -307,10 +307,10 @@ void sameNames() { (void)Nums[I]; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Nums) - // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", Elem); - // CHECK-FIXES-NEXT: Sum += Elem + 2 + Num; - // CHECK-FIXES-NEXT: (void)Elem; + // CHECK-FIXES: for (int & I : Nums) + // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I); + // CHECK-FIXES-NEXT: Sum += I + 2 + Num; + // CHECK-FIXES-NEXT: (void)I; int Elem = 0; for (int I = 0; I < N; ++I) { @@ -319,10 +319,10 @@ void sameNames() { (void)Nums[I]; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & NumsI : Nums) - // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", NumsI); - // CHECK-FIXES-NEXT: Sum += NumsI + 2 + Num + Elem; - // CHECK-FIXES-NEXT: (void)NumsI; + // CHECK-FIXES: for (int & I : Nums) + // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", I); + // CHECK-FIXES-NEXT: Sum += I + 2 + Num + Elem; + // CHECK-FIXES-NEXT: (void)I; } void oldIndexConflict() { @@ -349,8 +349,8 @@ void macroConflict() { printf("Max of 3 and 5: %d\n", MAX(3, 5)); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : MAXs) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto & It : MAXs) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); // CHECK-FIXES-NEXT: printf("Max of 3 and 5: %d\n", MAX(3, 5)); for (S::const_iterator It = MAXs.begin(), E = MAXs.end(); It != E; ++It) { @@ -358,8 +358,8 @@ void macroConflict() { printf("Max of 3 and 5: %d\n", MAX(3, 5)); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto Elem : MAXs) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto It : MAXs) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); // CHECK-FIXES-NEXT: printf("Max of 3 and 5: %d\n", MAX(3, 5)); T DEFs; @@ -369,9 +369,9 @@ void macroConflict() { } } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : DEFs) - // CHECK-FIXES-NEXT: if (Elem == DEF) - // CHECK-FIXES-NEXT: printf("I found %d\n", Elem); + // CHECK-FIXES: for (int & It : DEFs) + // CHECK-FIXES-NEXT: if (It == DEF) + // CHECK-FIXES-NEXT: printf("I found %d\n", It); } void keywordConflict() { @@ -380,8 +380,8 @@ void keywordConflict() { *It = 5; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : ints) - // CHECK-FIXES-NEXT: Elem = 5; + // CHECK-FIXES: for (int & It : ints) + // CHECK-FIXES-NEXT: It = 5; U __FUNCTION__s; for (U::iterator It = __FUNCTION__s.begin(), E = __FUNCTION__s.end(); @@ -389,8 +389,8 @@ void keywordConflict() { int __FUNCTION__s_It = (*It).X + 2; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : __FUNCTION__s) - // CHECK-FIXES-NEXT: int __FUNCTION__s_It = Elem.X + 2; + // CHECK-FIXES: for (auto & It : __FUNCTION__s) + // CHECK-FIXES-NEXT: int __FUNCTION__s_It = It.X + 2; } void typeConflict() { @@ -408,8 +408,8 @@ void typeConflict() { *It = sizeof(Val); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Vals) - // CHECK-FIXES-NEXT: Elem = sizeof(Val); + // CHECK-FIXES: for (int & It : Vals) + // CHECK-FIXES-NEXT: It = sizeof(Val); typedef struct Val TD; U TDs; @@ -427,7 +427,7 @@ void typeConflict() { (void) *It; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : TDs) + // CHECK-FIXES: for (auto & It : TDs) // CHECK-FIXES-NEXT: TD V; // CHECK-FIXES-NEXT: V.X = 5; @@ -437,8 +437,8 @@ void typeConflict() { *It = sizeof(St); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Sts) - // CHECK-FIXES-NEXT: Elem = sizeof(St); + // CHECK-FIXES: for (int & It : Sts) + // CHECK-FIXES-NEXT: It = sizeof(St); } } // namespace NamingConflict @@ -501,10 +501,10 @@ void f() { } // CHECK-MESSAGES: :[[@LINE-8]]:3: warning: use range-based for loop instead // CHECK-MESSAGES: :[[@LINE-8]]:5: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Arr) - // CHECK-FIXES-NEXT: for (auto & ArrJ : Arr) - // CHECK-FIXES-NEXT: int K = Elem.X + ArrJ.X; - // CHECK-FIXES-NOT: int L = Elem.X + Elem.X; + // CHECK-FIXES: for (auto & I : Arr) + // CHECK-FIXES-NEXT: for (auto & J : Arr) + // CHECK-FIXES-NEXT: int K = I.X + J.X; + // CHECK-FIXES-NOT: int L = I.X + I.X; // The inner loop is also convertible, but doesn't need to be converted // immediately. FIXME: update this test when that changes. @@ -515,9 +515,9 @@ void f() { } } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Nest) + // CHECK-FIXES: for (auto & I : Nest) // CHECK-FIXES-NEXT: for (int J = 0; J < M; ++J) - // CHECK-FIXES-NEXT: printf("Got item %d", Elem[J].X); + // CHECK-FIXES-NEXT: printf("Got item %d", I[J].X); // Note that the order of M and N are switched for this test. for (int J = 0; J < M; ++J) { @@ -528,8 +528,8 @@ void f() { // CHECK-MESSAGES: :[[@LINE-4]]:5: warning: use range-based for loop instead // CHECK-FIXES-NOT: for (auto & {{[a-zA-Z_]+}} : Nest[I]) // CHECK-FIXES: for (int J = 0; J < M; ++J) - // CHECK-FIXES-NEXT: for (auto & Elem : Nest) - // CHECK-FIXES-NEXT: printf("Got item %d", Elem[J].X); + // CHECK-FIXES-NEXT: for (auto & I : Nest) + // CHECK-FIXES-NEXT: printf("Got item %d", I[J].X); // The inner loop is also convertible. Nested<T> NestT; @@ -539,8 +539,8 @@ void f() { } } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : NestT) - // CHECK-FIXES-NEXT: for (T::iterator TI = Elem.begin(), TE = Elem.end(); TI != TE; ++TI) + // CHECK-FIXES: for (auto & I : NestT) + // CHECK-FIXES-NEXT: for (T::iterator TI = I.begin(), TE = I.end(); TI != TE; ++TI) // CHECK-FIXES-NEXT: printf("%d", *TI); // The inner loop is also convertible. @@ -551,8 +551,8 @@ void f() { } } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto Elem : NestS) - // CHECK-FIXES-NEXT: for (S::const_iterator SI = Elem.begin(), SE = Elem.end(); SI != SE; ++SI) + // CHECK-FIXES: for (auto I : NestS) + // CHECK-FIXES-NEXT: for (S::const_iterator SI = I.begin(), SE = I.end(); SI != SE; ++SI) // CHECK-FIXES-NEXT: printf("%d", *SI); for (Nested<S>::const_iterator I = NestS.begin(), E = NestS.end(); I != E; ++I) { @@ -611,9 +611,9 @@ void complexContainer() { MutableVal J = *I; } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Exes[Index].getS()) - // CHECK-FIXES-NEXT: MutableVal K = Elem; - // CHECK-FIXES-NEXT: MutableVal J = Elem; + // CHECK-FIXES: for (auto & I : Exes[Index].getS()) + // CHECK-FIXES-NEXT: MutableVal K = I; + // CHECK-FIXES-NEXT: MutableVal J = I; } void f() { @@ -623,24 +623,24 @@ void f() { printf("I found %d\n", *It); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Tt) - // CHECK-FIXES-NEXT: printf("I found %d\n", Elem); + // CHECK-FIXES: for (int & It : Tt) + // CHECK-FIXES-NEXT: printf("I found %d\n", It); T *Pt; for (T::iterator It = Pt->begin(); It != Pt->end(); ++It) { printf("I found %d\n", *It); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : *Pt) - // CHECK-FIXES-NEXT: printf("I found %d\n", Elem); + // CHECK-FIXES: for (int & It : *Pt) + // CHECK-FIXES-NEXT: printf("I found %d\n", It); S Ss; for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) { printf("s has value %d\n", (*It).X); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto & It : Ss) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); S *Ps; for (S::iterator It = Ps->begin(); It != Ps->end(); ++It) { @@ -654,51 +654,51 @@ void f() { printf("s has value %d\n", It->X); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto & It : Ss) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) { It->X = 3; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) - // CHECK-FIXES-NEXT: Elem.X = 3; + // CHECK-FIXES: for (auto & It : Ss) + // CHECK-FIXES-NEXT: It.X = 3; for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) { (*It).X = 3; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) - // CHECK-FIXES-NEXT: Elem.X = 3; + // CHECK-FIXES: for (auto & It : Ss) + // CHECK-FIXES-NEXT: It.X = 3; for (S::iterator It = Ss.begin(); It != Ss.end(); ++It) { It->nonConstFun(4, 5); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) - // CHECK-FIXES-NEXT: Elem.nonConstFun(4, 5); + // CHECK-FIXES: for (auto & It : Ss) + // CHECK-FIXES-NEXT: It.nonConstFun(4, 5); U Uu; for (U::iterator It = Uu.begin(); It != Uu.end(); ++It) { printf("s has value %d\n", It->X); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Uu) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto & It : Uu) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); for (U::iterator It = Uu.begin(); It != Uu.end(); ++It) { printf("s has value %d\n", (*It).X); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Uu) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto & It : Uu) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); U::iterator A; for (U::iterator I = Uu.begin(); I != Uu.end(); ++I) int K = A->X + I->X; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Uu) - // CHECK-FIXES-NEXT: int K = A->X + Elem.X; + // CHECK-FIXES: for (auto & I : Uu) + // CHECK-FIXES-NEXT: int K = A->X + I.X; dependent<int> V; for (dependent<int>::iterator It = V.begin(); @@ -706,16 +706,16 @@ void f() { printf("Fibonacci number is %d\n", *It); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : V) - // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", Elem); + // CHECK-FIXES: for (int & It : V) + // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It); for (dependent<int>::iterator It(V.begin()); It != V.end(); ++It) { printf("Fibonacci number is %d\n", *It); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : V) - // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", Elem); + // CHECK-FIXES: for (int & It : V) + // CHECK-FIXES-NEXT: printf("Fibonacci number is %d\n", It); doublyDependent<int, int> intmap; for (doublyDependent<int, int>::iterator It = intmap.begin(); @@ -723,8 +723,8 @@ void f() { printf("intmap[%d] = %d", It->first, It->second); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : intmap) - // CHECK-FIXES-NEXT: printf("intmap[%d] = %d", Elem.first, Elem.second); + // CHECK-FIXES: for (auto & It : intmap) + // CHECK-FIXES-NEXT: printf("intmap[%d] = %d", It.first, It.second); } void different_type() { @@ -738,8 +738,8 @@ 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 (auto Elem : Ss) - // CHECK-FIXES-NEXT: printf("s has value %d\n", Elem.X); + // CHECK-FIXES: for (auto It : Ss) + // CHECK-FIXES-NEXT: printf("s has value %d\n", It.X); S *Ps; for (S::const_iterator It = Ps->begin(); It != Ps->end(); ++It) { @@ -778,8 +778,8 @@ void messing_with_macros() { printf("Value: %d\n", Arr[I]); } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: printf("Value: %d\n", Elem); + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: printf("Value: %d\n", I); for (int I = 0; I < N; ++I) { printf("Value: %d\n", CONT Arr[I]); @@ -791,9 +791,9 @@ void messing_with_macros() { THREE_PARAM(Arr[I], Arr[I], Arr[I]); } // CHECK-MESSAGES: :[[@LINE-4]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Arr) - // CHECK-FIXES-NEXT: TWO_PARAM(Elem, Elem); - // CHECK-FIXES-NEXT: THREE_PARAM(Elem, Elem, Elem); + // CHECK-FIXES: for (int & I : Arr) + // CHECK-FIXES-NEXT: TWO_PARAM(I, I); + // CHECK-FIXES-NEXT: THREE_PARAM(I, I, I); } } // namespace Macros @@ -811,7 +811,7 @@ void set_union(Container &container) { for (S::iterator SI = Ss.begin(), SE = Ss.end(); SI != SE; ++SI) (void) *SI; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (auto & Elem : Ss) + // CHECK-FIXES: for (auto & SI : Ss) } void template_instantiation() { @@ -832,43 +832,43 @@ void capturesIndex() { for (int I = 0; I < N; ++I) auto F1 = [Arr, I]() { int R1 = Arr[I] + 1; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto F1 = [Arr, &Elem]() { int R1 = Elem + 1; }; + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto F1 = [Arr, &I]() { int R1 = I + 1; }; for (int I = 0; I < N; ++I) auto F2 = [Arr, &I]() { int R2 = Arr[I] + 3; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto F2 = [Arr, &Elem]() { int R2 = Elem + 3; }; + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto F2 = [Arr, &I]() { int R2 = I + 3; }; // FIXME: alias don't work if the index is captured. // Alias declared inside lambda (by value). for (int I = 0; I < N; ++I) auto F3 = [&Arr, I]() { int R3 = Arr[I]; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto F3 = [&Arr, &Elem]() { int R3 = Elem; }; + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto F3 = [&Arr, &I]() { int R3 = I; }; for (int I = 0; I < N; ++I) auto F4 = [&Arr, &I]() { int R4 = Arr[I]; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto F4 = [&Arr, &Elem]() { int R4 = Elem; }; + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto F4 = [&Arr, &I]() { int R4 = I; }; // Alias declared inside lambda (by reference). for (int I = 0; I < N; ++I) auto F5 = [&Arr, I]() { int &R5 = Arr[I]; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Arr) - // CHECK-FIXES-NEXT: auto F5 = [&Arr, &Elem]() { int &R5 = Elem; }; + // CHECK-FIXES: for (int & I : Arr) + // CHECK-FIXES-NEXT: auto F5 = [&Arr, &I]() { int &R5 = I; }; for (int I = 0; I < N; ++I) auto F6 = [&Arr, &I]() { int &R6 = Arr[I]; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Arr) - // CHECK-FIXES-NEXT: auto F6 = [&Arr, &Elem]() { int &R6 = Elem; }; + // CHECK-FIXES: for (int & I : Arr) + // CHECK-FIXES-NEXT: auto F6 = [&Arr, &I]() { int &R6 = I; }; for (int I = 0; I < N; ++I) { auto F = [Arr, I](int k) { @@ -877,10 +877,10 @@ void capturesIndex() { F(Arr[I]); } // CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto F = [Arr, &Elem](int k) - // CHECK-FIXES-NEXT: printf("%d\n", Elem + k); - // CHECK-FIXES: F(Elem); + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto F = [Arr, &I](int k) + // CHECK-FIXES-NEXT: printf("%d\n", I + k); + // CHECK-FIXES: F(I); } void implicitCapture() { @@ -909,10 +909,10 @@ void implicitCapture() { }; } // CHECK-MESSAGES: :[[@LINE-6]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) + // CHECK-FIXES: for (int I : Arr) // CHECK-FIXES-NEXT: auto G3 = [&]() - // CHECK-FIXES-NEXT: int R3 = Elem; - // CHECK-FIXES-NEXT: int J3 = Elem + R3; + // CHECK-FIXES-NEXT: int R3 = I; + // CHECK-FIXES-NEXT: int J3 = I + R3; for (int I = 0; I < N; ++I) { auto G4 = [=]() { @@ -920,9 +920,9 @@ void implicitCapture() { }; } // CHECK-MESSAGES: :[[@LINE-5]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) + // CHECK-FIXES: for (int I : Arr) // CHECK-FIXES-NEXT: auto G4 = [=]() - // CHECK-FIXES-NEXT: int R4 = Elem + 5; + // CHECK-FIXES-NEXT: int R4 = I + 5; // Alias by value. for (int I = 0; I < N; ++I) { @@ -955,14 +955,14 @@ void iterators() { for (dependent<int>::iterator I = Dep.begin(), E = Dep.end(); I != E; ++I) auto H1 = [&I]() { int R = *I; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Dep) - // CHECK-FIXES-NEXT: auto H1 = [&Elem]() { int R = Elem; }; + // CHECK-FIXES: for (int & I : Dep) + // CHECK-FIXES-NEXT: auto H1 = [&I]() { int R = I; }; for (dependent<int>::iterator I = Dep.begin(), E = Dep.end(); I != E; ++I) auto H2 = [&]() { int R = *I + 2; }; // CHECK-MESSAGES: :[[@LINE-2]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int & Elem : Dep) - // CHECK-FIXES-NEXT: auto H2 = [&]() { int R = Elem + 2; }; + // CHECK-FIXES: for (int & I : Dep) + // CHECK-FIXES-NEXT: auto H2 = [&]() { int R = I + 2; }; // FIXME: It doesn't work with const iterators. for (dependent<int>::const_iterator I = Dep.begin(), E = Dep.end(); @@ -991,15 +991,15 @@ void captureByValue() { auto C1 = [&Arr, I]() { if (Arr[I] == 1); }; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Arr) - // CHECK-FIXES-NEXT: auto C1 = [&Arr, &Elem]() { if (Elem == 1); }; + // CHECK-FIXES: for (int I : Arr) + // CHECK-FIXES-NEXT: auto C1 = [&Arr, &I]() { if (I == 1); }; for (unsigned I = 0; I < Dep.size(); ++I) { auto C2 = [&Dep, I]() { if (Dep[I] == 2); }; } // CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Dep) - // CHECK-FIXES-NEXT: auto C2 = [&Dep, &Elem]() { if (Elem == 2); }; + // CHECK-FIXES: for (int I : Dep) + // CHECK-FIXES-NEXT: auto C2 = [&Dep, &I]() { if (I == 2); }; } } // namespace Lambdas @@ -1024,12 +1024,12 @@ void f() { E Ee{ { { g( { Array[I] } ) } } }; } // CHECK-MESSAGES: :[[@LINE-7]]:3: warning: use range-based for loop instead - // CHECK-FIXES: for (int Elem : Array) - // CHECK-FIXES-NEXT: int A{ Elem }; - // CHECK-FIXES-NEXT: int B{ g(Elem) }; - // CHECK-FIXES-NEXT: int C{ g( { Elem } ) }; - // CHECK-FIXES-NEXT: D Dd{ { g( { Elem } ) } }; - // CHECK-FIXES-NEXT: E Ee{ { { g( { Elem } ) } } }; + // CHECK-FIXES: for (int I : Array) + // CHECK-FIXES-NEXT: int A{ I }; + // CHECK-FIXES-NEXT: int B{ g(I) }; + // CHECK-FIXES-NEXT: int C{ g( { I } ) }; + // CHECK-FIXES-NEXT: D Dd{ { g( { I } ) } }; + // CHECK-FIXES-NEXT: E Ee{ { { g( { I } ) } } }; } } // namespace InitLists |