diff options
| author | Abramo Bagnara <abramo.bagnara@gmail.com> | 2010-06-12 08:15:14 +0000 |
|---|---|---|
| committer | Abramo Bagnara <abramo.bagnara@gmail.com> | 2010-06-12 08:15:14 +0000 |
| commit | da41d0cf5b8d5ea65f2a7aa7bbf1d9e706743659 (patch) | |
| tree | 83a5d719932ff07e31e045e7b06210f59e8fe12a /clang/lib/AST/Decl.cpp | |
| parent | 7dacc95299399ba41de26fbd1e848e2557956a68 (diff) | |
| download | bcm5719-llvm-da41d0cf5b8d5ea65f2a7aa7bbf1d9e706743659.tar.gz bcm5719-llvm-da41d0cf5b8d5ea65f2a7aa7bbf1d9e706743659.zip | |
Added template parameters info for out-of-line definitions of class template methods.
llvm-svn: 105882
Diffstat (limited to 'clang/lib/AST/Decl.cpp')
| -rw-r--r-- | clang/lib/AST/Decl.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp index 4d13f7f3abb..cad7f1f88a8 100644 --- a/clang/lib/AST/Decl.cpp +++ b/clang/lib/AST/Decl.cpp @@ -566,6 +566,29 @@ void DeclaratorDecl::setQualifierInfo(NestedNameSpecifier *Qualifier, } } +void +QualifierInfo::setTemplateParameterListsInfo(unsigned NumTPLists, + TemplateParameterList **TPLists) { + assert((NumTPLists == 0 || TPLists != 0) && + "Empty array of template parameters with positive size!"); + assert((NumTPLists == 0 || NNS) && + "Nonempty array of template parameters with no qualifier!"); + + // Free previous template parameters (if any). + if (NumTemplParamLists > 0) { + delete[] TemplParamLists; + TemplParamLists = 0; + NumTemplParamLists = 0; + } + // Set info on matched template parameter lists (if any). + if (NumTPLists > 0) { + TemplParamLists = new TemplateParameterList*[NumTPLists]; + NumTemplParamLists = NumTPLists; + for (unsigned i = NumTPLists; i-- > 0; ) + TemplParamLists[i] = TPLists[i]; + } +} + //===----------------------------------------------------------------------===// // VarDecl Implementation //===----------------------------------------------------------------------===// |

