summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-move/ClangMove.cpp
diff options
context:
space:
mode:
authorEric Liu <ioeric@google.com>2016-12-06 10:12:23 +0000
committerEric Liu <ioeric@google.com>2016-12-06 10:12:23 +0000
commit47a42d53fc72718b0fd8f9f0501be7f6e565814d (patch)
tree4e5404a444d00e989281674993292577384c2145 /clang-tools-extra/clang-move/ClangMove.cpp
parent8977223e5520ac3cb8f7a5e04f28129eae25c3eb (diff)
downloadbcm5719-llvm-47a42d53fc72718b0fd8f9f0501be7f6e565814d.tar.gz
bcm5719-llvm-47a42d53fc72718b0fd8f9f0501be7f6e565814d.zip
[clang-move] ignore unsupported symbol kinds when checking if all symbols are moved.
llvm-svn: 288791
Diffstat (limited to 'clang-tools-extra/clang-move/ClangMove.cpp')
-rw-r--r--clang-tools-extra/clang-move/ClangMove.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-move/ClangMove.cpp b/clang-tools-extra/clang-move/ClangMove.cpp
index a4088a34575..050b53a1308 100644
--- a/clang-tools-extra/clang-move/ClangMove.cpp
+++ b/clang-tools-extra/clang-move/ClangMove.cpp
@@ -713,7 +713,24 @@ void ClangMoveTool::onEndOfTranslationUnit() {
if (RemovedDecls.empty())
return;
- if (UnremovedDeclsInOldHeader.empty() && !Context->Spec.OldHeader.empty()) {
+ // Ignore symbols that are not supported (e.g. typedef and enum) when
+ // checking if there is unremoved symbol in old header. This makes sure that
+ // we always move old files to new files when all symbols produced from
+ // dump_decls are moved.
+ auto IsSupportedKind = [](const clang::NamedDecl *Decl) {
+ switch (Decl->getKind()) {
+ case Decl::Kind::Function:
+ case Decl::Kind::FunctionTemplate:
+ case Decl::Kind::ClassTemplate:
+ case Decl::Kind::CXXRecord:
+ return true;
+ default:
+ return false;
+ }
+ };
+ if (std::none_of(UnremovedDeclsInOldHeader.begin(),
+ UnremovedDeclsInOldHeader.end(), IsSupportedKind) &&
+ !Context->Spec.OldHeader.empty()) {
auto &SM = RemovedDecls[0]->getASTContext().getSourceManager();
moveAll(SM, Context->Spec.OldHeader, Context->Spec.NewHeader);
moveAll(SM, Context->Spec.OldCC, Context->Spec.NewCC);
OpenPOWER on IntegriCloud