diff options
Diffstat (limited to 'clang-tools-extra/clang-move/ClangMove.cpp')
-rw-r--r-- | clang-tools-extra/clang-move/ClangMove.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/clang-tools-extra/clang-move/ClangMove.cpp b/clang-tools-extra/clang-move/ClangMove.cpp index 62356d278e7..dea41b2cfff 100644 --- a/clang-tools-extra/clang-move/ClangMove.cpp +++ b/clang-tools-extra/clang-move/ClangMove.cpp @@ -406,8 +406,13 @@ void ClangMoveTool::run(const ast_matchers::MatchFinder::MatchResult &Result) { } else if (const auto *FWD = Result.Nodes.getNodeAs<clang::CXXRecordDecl>("fwd_decl")) { // Skip all forwad declarations which appear after moved class declaration. - if (RemovedDecls.empty()) - MovedDecls.emplace_back(FWD, &Result.Context->getSourceManager()); + if (RemovedDecls.empty()) { + if (const auto *DCT = FWD->getDescribedClassTemplate()) { + MovedDecls.emplace_back(DCT, &Result.Context->getSourceManager()); + } else { + MovedDecls.emplace_back(FWD, &Result.Context->getSourceManager()); + } + } } else if (const auto *ANS = Result.Nodes.getNodeAs<clang::NamespaceDecl>( "anonymous_ns")) { MovedDecls.emplace_back(ANS, &Result.Context->getSourceManager()); |