diff options
| author | Eric Liu <ioeric@google.com> | 2017-12-08 10:06:16 +0000 |
|---|---|---|
| committer | Eric Liu <ioeric@google.com> | 2017-12-08 10:06:16 +0000 |
| commit | 89827634e1c90ed38380cbb2d1d53b69f7a4736d (patch) | |
| tree | c12f401c98f4f95cd65957386259db9cd0b0a249 /change-namespace | |
| parent | e95f20d0df5f2c34c9019bd89ef4a531ca8510be (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.cpp | 4 |
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()) |
