diff options
| author | Eric Liu <ioeric@google.com> | 2016-12-06 10:12:23 +0000 |
|---|---|---|
| committer | Eric Liu <ioeric@google.com> | 2016-12-06 10:12:23 +0000 |
| commit | 47a42d53fc72718b0fd8f9f0501be7f6e565814d (patch) | |
| tree | 4e5404a444d00e989281674993292577384c2145 /clang-tools-extra/clang-move/ClangMove.cpp | |
| parent | 8977223e5520ac3cb8f7a5e04f28129eae25c3eb (diff) | |
| download | bcm5719-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.cpp | 19 |
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); |

