summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/change-namespace/ChangeNamespace.cpp
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2016-12-07 20:08:02 +0000
committerEric Liu <ioeric@google.com>2016-12-07 20:08:02 +0000
commit97f87add50e9b435a104449372fdd08a8f8723b7 (patch)
tree981d35dc732c1f3c6e29d038e5feac252eefec1b /clang-tools-extra/change-namespace/ChangeNamespace.cpp
parentc6885fc369945a8fe196301b7c2357e11a4c5f20 (diff)
downloadbcm5719-llvm-97f87add50e9b435a104449372fdd08a8f8723b7.tar.gz
bcm5719-llvm-97f87add50e9b435a104449372fdd08a8f8723b7.zip
[change-namespace] always add a '::' prefix when a symbol reference needs to be fully-qualified.
llvm-svn: 288969
Diffstat (limited to 'clang-tools-extra/change-namespace/ChangeNamespace.cpp')
-rw-r--r--clang-tools-extra/change-namespace/ChangeNamespace.cpp4
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 45064ebeeb7..2dca1a98893 100644
--- a/clang-tools-extra/change-namespace/ChangeNamespace.cpp
+++ b/clang-tools-extra/change-namespace/ChangeNamespace.cpp
@@ -663,6 +663,10 @@ void ChangeNamespaceTool::replaceQualifiedSymbolInDeclContext(
// old namespace, we don't create replacement.
if (NestedName == ReplaceName)
return;
+ // If the reference need to be fully-qualified, add a leading "::" unless
+ // NewNamespace is the global namespace.
+ if (ReplaceName == FromDeclName && !NewNamespace.empty())
+ ReplaceName = "::" + ReplaceName;
auto R = createReplacement(Start, End, ReplaceName, *Result.SourceManager);
auto Err = FileToReplacements[R.getFilePath()].add(R);
if (Err)
OpenPOWER on IntegriCloud