forked from OSchip/llvm-project
Avoid naming conflicts with the old index in modernize-loop-convert.
Summary: The old index declaration is going to be removed anyway, so we can reuse its name if it is the best candidate for the new index. Reviewers: klimek Subscribers: cfe-commits, alexfh Differential Revision: http://reviews.llvm.org/D14437 llvm-svn: 252303
This commit is contained in:
parent
712229ec59
commit
7e1d4ae937
|
@ -820,14 +820,14 @@ std::string VariableNamer::createIndexName() {
|
||||||
if (Len > 1 && ContainerName.endswith(Style == NS_UpperCase ? "S" : "s")) {
|
if (Len > 1 && ContainerName.endswith(Style == NS_UpperCase ? "S" : "s")) {
|
||||||
IteratorName = ContainerName.substr(0, Len - 1);
|
IteratorName = ContainerName.substr(0, Len - 1);
|
||||||
// E.g.: (auto thing : things)
|
// E.g.: (auto thing : things)
|
||||||
if (!declarationExists(IteratorName))
|
if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
|
||||||
return IteratorName;
|
return IteratorName;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Len > 2 && ContainerName.endswith(Style == NS_UpperCase ? "S_" : "s_")) {
|
if (Len > 2 && ContainerName.endswith(Style == NS_UpperCase ? "S_" : "s_")) {
|
||||||
IteratorName = ContainerName.substr(0, Len - 2);
|
IteratorName = ContainerName.substr(0, Len - 2);
|
||||||
// E.g.: (auto thing : things_)
|
// E.g.: (auto thing : things_)
|
||||||
if (!declarationExists(IteratorName))
|
if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
|
||||||
return IteratorName;
|
return IteratorName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -849,12 +849,12 @@ std::string VariableNamer::createIndexName() {
|
||||||
|
|
||||||
IteratorName = AppendWithStyle(ContainerName, OldIndex->getName());
|
IteratorName = AppendWithStyle(ContainerName, OldIndex->getName());
|
||||||
// E.g.: (auto container_i : container)
|
// E.g.: (auto container_i : container)
|
||||||
if (!declarationExists(IteratorName))
|
if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
|
||||||
return IteratorName;
|
return IteratorName;
|
||||||
|
|
||||||
IteratorName = AppendWithStyle(ContainerName, Elem);
|
IteratorName = AppendWithStyle(ContainerName, Elem);
|
||||||
// E.g.: (auto container_elem : container)
|
// E.g.: (auto container_elem : container)
|
||||||
if (!declarationExists(IteratorName))
|
if (!declarationExists(IteratorName) || IteratorName == OldIndex->getName())
|
||||||
return IteratorName;
|
return IteratorName;
|
||||||
|
|
||||||
// Someone defeated my naming scheme...
|
// Someone defeated my naming scheme...
|
||||||
|
@ -875,7 +875,8 @@ std::string VariableNamer::createIndexName() {
|
||||||
int Attempt = 0;
|
int Attempt = 0;
|
||||||
do {
|
do {
|
||||||
IteratorName = GiveMeName + std::to_string(Attempt++);
|
IteratorName = GiveMeName + std::to_string(Attempt++);
|
||||||
} while (declarationExists(IteratorName));
|
} while (declarationExists(IteratorName) ||
|
||||||
|
IteratorName == OldIndex->getName());
|
||||||
|
|
||||||
return IteratorName;
|
return IteratorName;
|
||||||
}
|
}
|
||||||
|
|
|
@ -325,6 +325,23 @@ void sameNames() {
|
||||||
// CHECK-FIXES-NEXT: (void)NumsI;
|
// CHECK-FIXES-NEXT: (void)NumsI;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void oldIndexConflict() {
|
||||||
|
for (int Num = 0; Num < N; ++Num) {
|
||||||
|
printf("Num: %d\n", Nums[Num]);
|
||||||
|
}
|
||||||
|
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
|
||||||
|
// CHECK-FIXES: for (int Num : Nums)
|
||||||
|
// CHECK-FIXES-NEXT: printf("Num: %d\n", Num);
|
||||||
|
|
||||||
|
S Things;
|
||||||
|
for (S::iterator Thing = Things.begin(), End = Things.end(); Thing != End; ++Thing) {
|
||||||
|
printf("Thing: %d %d\n", Thing->X, (*Thing).X);
|
||||||
|
}
|
||||||
|
// CHECK-MESSAGES: :[[@LINE-3]]:3: warning: use range-based for loop instead
|
||||||
|
// CHECK-FIXES: for (auto & Thing : Things)
|
||||||
|
// CHECK-FIXES-NEXT: printf("Thing: %d %d\n", Thing.X, Thing.X);
|
||||||
|
}
|
||||||
|
|
||||||
void macroConflict() {
|
void macroConflict() {
|
||||||
S MAXs;
|
S MAXs;
|
||||||
for (S::iterator It = MAXs.begin(), E = MAXs.end(); It != E; ++It) {
|
for (S::iterator It = MAXs.begin(), E = MAXs.end(); It != E; ++It) {
|
||||||
|
|
Loading…
Reference in New Issue