diff options
| author | Eric Liu <ioeric@google.com> | 2017-02-24 11:54:45 +0000 |
|---|---|---|
| committer | Eric Liu <ioeric@google.com> | 2017-02-24 11:54:45 +0000 |
| commit | 7fccc9995a0cd7c7b68b5207264ace756ddd06a0 (patch) | |
| tree | 634260e9115a0b9e5d076f791b25c840f7f9ae1d /clang-tools-extra/change-namespace/ChangeNamespace.cpp | |
| parent | 4f8a4437989992a1b83438a07fef2f90dc4df4ae (diff) | |
| download | bcm5719-llvm-7fccc9995a0cd7c7b68b5207264ace756ddd06a0.tar.gz bcm5719-llvm-7fccc9995a0cd7c7b68b5207264ace756ddd06a0.zip | |
[change-namepsace] make it possible to whitelist symbols so they don't get updated.
Reviewers: hokein
Reviewed By: hokein
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D30328
llvm-svn: 296110
Diffstat (limited to 'clang-tools-extra/change-namespace/ChangeNamespace.cpp')
| -rw-r--r-- | clang-tools-extra/change-namespace/ChangeNamespace.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/clang-tools-extra/change-namespace/ChangeNamespace.cpp b/clang-tools-extra/change-namespace/ChangeNamespace.cpp index ebd6daeebc5..ad1c22afcdb 100644 --- a/clang-tools-extra/change-namespace/ChangeNamespace.cpp +++ b/clang-tools-extra/change-namespace/ChangeNamespace.cpp @@ -290,6 +290,7 @@ AST_MATCHER(EnumDecl, isScoped) { ChangeNamespaceTool::ChangeNamespaceTool( llvm::StringRef OldNs, llvm::StringRef NewNs, llvm::StringRef FilePattern, + llvm::ArrayRef<std::string> WhiteListedSymbolPatterns, std::map<std::string, tooling::Replacements> *FileToReplacements, llvm::StringRef FallbackStyle) : FallbackStyle(FallbackStyle), FileToReplacements(*FileToReplacements), @@ -308,6 +309,9 @@ ChangeNamespaceTool::ChangeNamespaceTool( } DiffOldNamespace = joinNamespaces(OldNsSplitted); DiffNewNamespace = joinNamespaces(NewNsSplitted); + + for (const auto &Pattern : WhiteListedSymbolPatterns) + WhiteListedSymbolRegexes.emplace_back(Pattern); } void ChangeNamespaceTool::registerMatchers(ast_matchers::MatchFinder *Finder) { @@ -736,6 +740,9 @@ void ChangeNamespaceTool::replaceQualifiedSymbolInDeclContext( Result.SourceManager->getSpellingLoc(End)), *Result.SourceManager, Result.Context->getLangOpts()); std::string FromDeclName = FromDecl->getQualifiedNameAsString(); + for (llvm::Regex &RE : WhiteListedSymbolRegexes) + if (RE.match(FromDeclName)) + return; std::string ReplaceName = getShortestQualifiedNameInNamespace(FromDeclName, NewNs); // Checks if there is any using namespace declarations that can shorten the |

