]> granicus.if.org Git - clang/commitdiff
Recompute the injected class name type for a class template specialization
authorRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 23 May 2014 21:31:59 +0000 (21:31 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Fri, 23 May 2014 21:31:59 +0000 (21:31 +0000)
rather than saving and restoring it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209557 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Serialization/ASTReaderDecl.cpp
lib/Serialization/ASTWriterDecl.cpp

index 0c6d858bf5475640e4d661b75bd4dd757acd55a5..8a0849cb9092e3aea7164e582d6c0a51091e3625 100644 (file)
@@ -1646,8 +1646,6 @@ void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) {
       memcpy(CommonPtr->LazySpecializations, SpecIDs.data(), 
              SpecIDs.size() * sizeof(DeclID));
     }
-    
-    CommonPtr->InjectedClassNameType = Reader.readType(F, Record, Idx);
   }
 
   if (D->getTemplatedDecl()->TemplateOrInstantiation) {
@@ -1655,7 +1653,7 @@ void ASTDeclReader::VisitClassTemplateDecl(ClassTemplateDecl *D) {
     // its corresponding type yet (see VisitCXXRecordDeclImpl), so reconstruct
     // it now.
     Reader.Context.getInjectedClassNameType(
-        D->getTemplatedDecl(), D->getCommonPtr()->InjectedClassNameType);
+        D->getTemplatedDecl(), D->getInjectedClassNameSpecialization());
   }
 }
 
index c6e42d4d315cc71565393a8df86d99bc8e5cab11..347473c77d9ec1c16a486e251d55a1b5e41e970b 100644 (file)
@@ -1156,8 +1156,6 @@ void ASTDeclWriter::VisitClassTemplateDecl(ClassTemplateDecl *D) {
       assert(I->isCanonicalDecl() && "Expected only canonical decls in set");
       Writer.AddDeclRef(&*I, Record); 
     }
-
-    Writer.AddTypeRef(D->getCommonPtr()->InjectedClassNameType, Record);
   }
   Code = serialization::DECL_CLASS_TEMPLATE;
 }