diff options
| author | Douglas Gregor <dgregor@apple.com> | 2010-06-15 17:44:38 +0000 |
|---|---|---|
| committer | Douglas Gregor <dgregor@apple.com> | 2010-06-15 17:44:38 +0000 |
| commit | 20527e2c8333da70c1a39c55bb383cda88489255 (patch) | |
| tree | 6f3f95f0fa88186fcf2365e352290908dab6cbaf /clang/lib/Sema | |
| parent | de94e66234ae01281078c675096e37479cffa91f (diff) | |
| download | bcm5719-llvm-20527e2c8333da70c1a39c55bb383cda88489255.tar.gz bcm5719-llvm-20527e2c8333da70c1a39c55bb383cda88489255.zip | |
Allocate template parameter lists for out-of-line definitions via the
ASTContext rather than via the normal heap.
llvm-svn: 106008
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaDecl.cpp | 9 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaTemplate.cpp | 7 |
2 files changed, 10 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp index 9ba3ee6ca40..d1818b813ce 100644 --- a/clang/lib/Sema/SemaDecl.cpp +++ b/clang/lib/Sema/SemaDecl.cpp @@ -2573,7 +2573,8 @@ Sema::ActOnVariableDeclarator(Scope* S, Declarator& D, DeclContext* DC, SetNestedNameSpecifier(NewVD, D); if (NumMatchedTemplateParamLists > 0) { - NewVD->setTemplateParameterListsInfo(NumMatchedTemplateParamLists, + NewVD->setTemplateParameterListsInfo(Context, + NumMatchedTemplateParamLists, (TemplateParameterList**)TemplateParamLists.release()); } @@ -3151,7 +3152,8 @@ Sema::ActOnFunctionDeclarator(Scope* S, Declarator& D, DeclContext* DC, } if (NumMatchedTemplateParamLists > 0) { - NewFD->setTemplateParameterListsInfo(NumMatchedTemplateParamLists, + NewFD->setTemplateParameterListsInfo(Context, + NumMatchedTemplateParamLists, (TemplateParameterList**)TemplateParamLists.release()); } @@ -5412,7 +5414,8 @@ CreateNewDecl: = static_cast<NestedNameSpecifier*>(SS.getScopeRep()); New->setQualifierInfo(NNS, SS.getRange()); if (NumMatchedTemplateParamLists > 0) { - New->setTemplateParameterListsInfo(NumMatchedTemplateParamLists, + New->setTemplateParameterListsInfo(Context, + NumMatchedTemplateParamLists, (TemplateParameterList**) TemplateParameterLists.release()); } } diff --git a/clang/lib/Sema/SemaTemplate.cpp b/clang/lib/Sema/SemaTemplate.cpp index 21d5702ea25..234665c4aa7 100644 --- a/clang/lib/Sema/SemaTemplate.cpp +++ b/clang/lib/Sema/SemaTemplate.cpp @@ -3868,7 +3868,8 @@ Sema::ActOnClassTemplateSpecialization(Scope *S, unsigned TagSpec, SequenceNumber); SetNestedNameSpecifier(Partial, SS); if (NumMatchedTemplateParamLists > 0) { - Partial->setTemplateParameterListsInfo(NumMatchedTemplateParamLists, + Partial->setTemplateParameterListsInfo(Context, + NumMatchedTemplateParamLists, (TemplateParameterList**) TemplateParameterLists.release()); } @@ -3929,8 +3930,8 @@ Sema::ActOnClassTemplateSpecialization(Scope *S, unsigned TagSpec, PrevDecl); SetNestedNameSpecifier(Specialization, SS); if (NumMatchedTemplateParamLists > 0) { - Specialization->setTemplateParameterListsInfo( - NumMatchedTemplateParamLists, + Specialization->setTemplateParameterListsInfo(Context, + NumMatchedTemplateParamLists, (TemplateParameterList**) TemplateParameterLists.release()); } |

