diff options
author | John McCall <rjmccall@apple.com> | 2010-06-13 09:25:03 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-06-13 09:25:03 +0000 |
commit | 71d74bc0d6e522ce7c21a599db8e19d3883b518f (patch) | |
tree | 978c8f08117b5aca9275131bebf154738a418211 /lib/AST/ASTContext.cpp | |
parent | e6563256a4b3b9fee70ce3335d28406607c1faaf (diff) |
TemplateSpecializationType's isCurrentInstantiation bit can be derived
from its canonical type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105912 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ASTContext.cpp')
-rw-r--r-- | lib/AST/ASTContext.cpp | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index 065ebe9f9a..bb27ab9747 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -1778,8 +1778,7 @@ ASTContext::getTemplateSpecializationTypeInfo(TemplateName Name, QualType ASTContext::getTemplateSpecializationType(TemplateName Template, const TemplateArgumentListInfo &Args, - QualType Canon, - bool IsCurrentInstantiation) { + QualType Canon) { unsigned NumArgs = Args.size(); llvm::SmallVector<TemplateArgument, 4> ArgVec; @@ -1788,22 +1787,17 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, ArgVec.push_back(Args[i].getArgument()); return getTemplateSpecializationType(Template, ArgVec.data(), NumArgs, - Canon, IsCurrentInstantiation); + Canon); } QualType ASTContext::getTemplateSpecializationType(TemplateName Template, const TemplateArgument *Args, unsigned NumArgs, - QualType Canon, - bool IsCurrentInstantiation) { + QualType Canon) { if (!Canon.isNull()) Canon = getCanonicalType(Canon); else { - assert(!IsCurrentInstantiation && - "current-instantiation specializations should always " - "have a canonical type"); - // Build the canonical template specialization type. TemplateName CanonTemplate = getCanonicalTemplateName(Template); llvm::SmallVector<TemplateArgument, 4> CanonArgs; @@ -1814,7 +1808,7 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, // Determine whether this canonical template specialization type already // exists. llvm::FoldingSetNodeID ID; - TemplateSpecializationType::Profile(ID, CanonTemplate, false, + TemplateSpecializationType::Profile(ID, CanonTemplate, CanonArgs.data(), NumArgs, *this); void *InsertPos = 0; @@ -1826,7 +1820,7 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, void *Mem = Allocate((sizeof(TemplateSpecializationType) + sizeof(TemplateArgument) * NumArgs), TypeAlignment); - Spec = new (Mem) TemplateSpecializationType(CanonTemplate, false, + Spec = new (Mem) TemplateSpecializationType(CanonTemplate, CanonArgs.data(), NumArgs, Canon); Types.push_back(Spec); @@ -1847,7 +1841,6 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, TypeAlignment); TemplateSpecializationType *Spec = new (Mem) TemplateSpecializationType(Template, - IsCurrentInstantiation, Args, NumArgs, Canon); |