Recompute the injected class name type for a class template specialization

rather than saving and restoring it.

llvm-svn: 209557
This commit is contained in:
Richard Smith 2014-05-23 21:31:59 +00:00
parent 3f1b632ad8
commit a1406fa513
2 changed files with 1 additions and 5 deletions

View 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());
}
}

View 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;
}