[clang-move] Support moving template class forward declarations.

llvm-svn: 284859
diff --git a/clang-tools-extra/clang-move/ClangMove.cpp b/clang-tools-extra/clang-move/ClangMove.cpp
index 62356d2..dea41b2 100644
--- a/clang-tools-extra/clang-move/ClangMove.cpp
+++ b/clang-tools-extra/clang-move/ClangMove.cpp
@@ -406,8 +406,13 @@
   } 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());