summaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-change-namespace
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2022-07-14 21:13:57 -0700
committerJonas Devlieghere <jonas@devlieghere.com>2022-07-14 21:17:48 -0700
commit888673b6e3bf0182fb5f154eb3231c9ae022acca (patch)
tree5920eb6c26de7d1f48fd76a4d33c0dd36c163f3f /clang-tools-extra/clang-change-namespace
parentef0081d608298db65371f9869c1371fcfc74a778 (diff)
downloadllvm-888673b6e3bf0182fb5f154eb3231c9ae022acca.tar.gz
Revert "[clang] Implement ElaboratedType sugaring for types written bare"
This reverts commit 7c51f02effdbd0d5e12bfd26f9c3b2ab5687c93f because it stills breaks the LLDB tests. This was re-landed without addressing the issue or even agreement on how to address the issue. More details and discussion in https://reviews.llvm.org/D112374.
Diffstat (limited to 'clang-tools-extra/clang-change-namespace')
-rw-r--r--clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp b/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
index 26d31c669bcc..59acc29e8ee9 100644
--- a/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
+++ b/clang-tools-extra/clang-change-namespace/ChangeNamespace.cpp
@@ -567,12 +567,14 @@ void ChangeNamespaceTool::run(
if (Loc.getTypeLocClass() == TypeLoc::Elaborated) {
NestedNameSpecifierLoc NestedNameSpecifier =
Loc.castAs<ElaboratedTypeLoc>().getQualifierLoc();
- // FIXME: avoid changing injected class names.
- if (auto *NNS = NestedNameSpecifier.getNestedNameSpecifier()) {
- const Type *SpecifierType = NNS->getAsType();
- if (SpecifierType && SpecifierType->isRecordType())
- return;
- }
+ // This happens for friend declaration of a base class with injected class
+ // name.
+ if (!NestedNameSpecifier.getNestedNameSpecifier())
+ return;
+ const Type *SpecifierType =
+ NestedNameSpecifier.getNestedNameSpecifier()->getAsType();
+ if (SpecifierType && SpecifierType->isRecordType())
+ return;
}
fixTypeLoc(Result, startLocationForType(Loc), endLocationForType(Loc), Loc);
} else if (const auto *VarRef =