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 | 383af2442731955a75f9b9c24f98350f6eabc5eb (patch) | |
tree | 319b0c90fe8fe09828d51d1651703bf2a253216a /clang-tools-extra/change-namespace | |
parent | edcd84543453e120db0c24b67a9479bb0dad505e (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
Diffstat (limited to 'clang-tools-extra/change-namespace')
-rw-r--r-- | clang-tools-extra/change-namespace/ChangeNamespace.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/clang-tools-extra/change-namespace/ChangeNamespace.cpp b/clang-tools-extra/change-namespace/ChangeNamespace.cpp index bb3867c8ed7..68adada9948 100644 --- a/clang-tools-extra/change-namespace/ChangeNamespace.cpp +++ b/clang-tools-extra/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()) |