diff --git a/lib/Sema/SemaDecl.cpp b/lib/Sema/SemaDecl.cpp
index a15c5fe..0fc61e3 100644
--- a/lib/Sema/SemaDecl.cpp
+++ b/lib/Sema/SemaDecl.cpp
@@ -3749,7 +3749,7 @@
   if (getLangOptions().CPlusPlus) {
     // Make sure we mark the destructor as used if necessary.
     QualType InitType = VDecl->getType();
-    if (const ArrayType *Array = Context.getAsArrayType(InitType))
+    while (const ArrayType *Array = Context.getAsArrayType(InitType))
       InitType = Context.getBaseElementType(Array);
     if (InitType->isRecordType())
       FinalizeVarWithDestructor(VDecl, InitType);
diff --git a/lib/Sema/SemaDeclCXX.cpp b/lib/Sema/SemaDeclCXX.cpp
index 204d776..ecf95d7 100644
--- a/lib/Sema/SemaDeclCXX.cpp
+++ b/lib/Sema/SemaDeclCXX.cpp
@@ -5702,19 +5702,31 @@
       ClassesWithUnmarkedVirtualMembers.insert(std::make_pair(RD, Loc));
     return;
   }
-  
-  const CXXMethodDecl *KeyFunction = Context.getKeyFunction(RD);
 
-  if (!KeyFunction) {
-    // This record does not have a key function, so we assume that the vtable
-    // will be emitted when it's used by the constructor.
-    if (!isa<CXXConstructorDecl>(MD))
+  switch (RD->getTemplateSpecializationKind()) {
+  case TSK_Undeclared:
+  case TSK_ExplicitSpecialization: {
+    const CXXMethodDecl *KeyFunction = Context.getKeyFunction(RD);
+
+    if (!KeyFunction) {
+      // This record does not have a key function, so we assume that the vtable
+      // will be emitted when it's used by the constructor.
+      if (!isa<CXXConstructorDecl>(MD))
+        return;
+    } else if (KeyFunction->getCanonicalDecl() != MD->getCanonicalDecl()) {
+      // We don't have the right key function.
       return;
-  } else if (KeyFunction->getCanonicalDecl() != MD->getCanonicalDecl()) {
-    // We don't have the right key function.
-    return;
+    }
+    break;
   }
-  
+
+  case TSK_ImplicitInstantiation:
+  case TSK_ExplicitInstantiationDeclaration:
+  case TSK_ExplicitInstantiationDefinition:
+    // Always mark the virtual members of an instantiated template.
+    break;
+  }
+
   // Mark the members as referenced.
   MarkVirtualMembersReferenced(Loc, RD);
   ClassesWithUnmarkedVirtualMembers.erase(RD);
