summaryrefslogtreecommitdiffstats
path: root/change-namespace
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2017-12-08 10:06:16 +0000
committerEric Liu <ioeric@google.com>2017-12-08 10:06:16 +0000
commit89827634e1c90ed38380cbb2d1d53b69f7a4736d (patch)
treec12f401c98f4f95cd65957386259db9cd0b0a249 /change-namespace
parente95f20d0df5f2c34c9019bd89ef4a531ca8510be (diff)
[change-namespace] Fix crash when injected base-class name is used in friend declarations.
Reviewers: hokein Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D41001 git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@320139 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'change-namespace')
-rw-r--r--change-namespace/ChangeNamespace.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/change-namespace/ChangeNamespace.cpp b/change-namespace/ChangeNamespace.cpp
index bb3867c8..68adada9 100644
--- a/change-namespace/ChangeNamespace.cpp
+++ b/change-namespace/ChangeNamespace.cpp
@@ -552,6 +552,10 @@ void ChangeNamespaceTool::run(
if (Loc.getTypeLocClass() == TypeLoc::Elaborated) {
NestedNameSpecifierLoc NestedNameSpecifier =
Loc.castAs<ElaboratedTypeLoc>().getQualifierLoc();
+ // 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())