summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-move
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2016-11-18 10:51:16 +0000
committerHaojian Wu <hokein@google.com>2016-11-18 10:51:16 +0000
commit50a45d93717052c70180e57c878eb951e3c1afa1 (patch)
treea263b938432f68adcbca8cb081ea64d7263fa5f1 /clang-tools-extra/clang-move
parent85818684c6ccb136ccf5a1dfdca6968fe7d1037b (diff)
downloadbcm5719-llvm-50a45d93717052c70180e57c878eb951e3c1afa1.tar.gz
bcm5719-llvm-50a45d93717052c70180e57c878eb951e3c1afa1.zip
[clang-move] Fix not moving using-decls in global namespace in old.cc
Reviewers: ioeric Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D26844 llvm-svn: 287330
Diffstat (limited to 'clang-tools-extra/clang-move')
-rw-r--r--clang-tools-extra/clang-move/ClangMove.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/clang-tools-extra/clang-move/ClangMove.cpp b/clang-tools-extra/clang-move/ClangMove.cpp
index eb147c23c01..5e40691d27d 100644
--- a/clang-tools-extra/clang-move/ClangMove.cpp
+++ b/clang-tools-extra/clang-move/ClangMove.cpp
@@ -373,6 +373,7 @@ createInsertedReplacements(const std::vector<std::string> &Includes,
}
// If the moved declaration is in same namespace CurrentNamespace, add
// a preceeding `\n' before the moved declaration.
+ // FIXME: Don't add empty lines between using declarations.
if (!IsInNewNamespace)
NewCode += "\n";
NewCode += getDeclarationSourceText(MovedDecl.Decl, MovedDecl.SM);
@@ -453,15 +454,17 @@ void ClangMoveTool::registerMatchers(ast_matchers::MatchFinder *Finder) {
//============================================================================
// Matchers for old cc
//============================================================================
- auto InOldCCNamedNamespace =
- allOf(hasParent(namespaceDecl(unless(isAnonymous()))), InOldCC);
- // Matching using decls/type alias decls which are in named namespace. Those
- // in classes, functions and anonymous namespaces are covered in other
- // matchers.
+ auto InOldCCNamedOrGlobalNamespace =
+ allOf(hasParent(decl(anyOf(namespaceDecl(unless(isAnonymous())),
+ translationUnitDecl()))),
+ InOldCC);
+ // Matching using decls/type alias decls which are in named namespace or
+ // global namespace. Those in classes, functions and anonymous namespaces are
+ // covered in other matchers.
Finder->addMatcher(
- namedDecl(anyOf(usingDecl(InOldCCNamedNamespace),
- usingDirectiveDecl(InOldCC, InOldCCNamedNamespace),
- typeAliasDecl(InOldCC, InOldCCNamedNamespace)))
+ namedDecl(anyOf(usingDecl(InOldCCNamedOrGlobalNamespace),
+ usingDirectiveDecl(InOldCCNamedOrGlobalNamespace),
+ typeAliasDecl( InOldCCNamedOrGlobalNamespace)))
.bind("using_decl"),
this);
@@ -472,7 +475,7 @@ void ClangMoveTool::registerMatchers(ast_matchers::MatchFinder *Finder) {
// Match static functions/variable definitions which are defined in named
// namespaces.
auto IsOldCCStaticDefinition =
- allOf(isDefinition(), unless(InMovedClass), InOldCCNamedNamespace,
+ allOf(isDefinition(), unless(InMovedClass), InOldCCNamedOrGlobalNamespace,
isStaticStorageClass());
Finder->addMatcher(namedDecl(anyOf(functionDecl(IsOldCCStaticDefinition),
varDecl(IsOldCCStaticDefinition)))
OpenPOWER on IntegriCloud