diff options
| author | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:09:57 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2009-07-29 16:09:57 +0000 |
| commit | 0004417e81d881bffd7190ae6fd2ce3553363b3b (patch) | |
| tree | dde1931f65e8eb0d706ecc89b3ecf268b45f723a /clang/lib/AST/ASTContext.cpp | |
| parent | ea2f1ceb4b6d5f7552379f4e2ea6efb0b12f195c (diff) | |
| download | bcm5719-llvm-0004417e81d881bffd7190ae6fd2ce3553363b3b.tar.gz bcm5719-llvm-0004417e81d881bffd7190ae6fd2ce3553363b3b.zip | |
Use the new statement/expression profiling code to unique dependent
template arguments, as in template specialization types. This permits
matching out-of-line definitions of members for class templates that
involve non-type template parameters.
llvm-svn: 77462
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index 931010d9046..f3a417181e7 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -1682,7 +1682,7 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, // exists. llvm::FoldingSetNodeID ID; TemplateSpecializationType::Profile(ID, CanonTemplate, - CanonArgs.data(), NumArgs); + CanonArgs.data(), NumArgs, *this); void *InsertPos = 0; TemplateSpecializationType *Spec @@ -1693,7 +1693,7 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, void *Mem = Allocate((sizeof(TemplateSpecializationType) + sizeof(TemplateArgument) * NumArgs), 8); - Spec = new (Mem) TemplateSpecializationType(CanonTemplate, + Spec = new (Mem) TemplateSpecializationType(*this, CanonTemplate, CanonArgs.data(), NumArgs, QualType()); Types.push_back(Spec); @@ -1713,7 +1713,8 @@ ASTContext::getTemplateSpecializationType(TemplateName Template, sizeof(TemplateArgument) * NumArgs), 8); TemplateSpecializationType *Spec - = new (Mem) TemplateSpecializationType(Template, Args, NumArgs, Canon); + = new (Mem) TemplateSpecializationType(*this, Template, Args, NumArgs, + Canon); Types.push_back(Spec); return QualType(Spec, 0); |

