diff options
| author | Devang Patel <dpatel@apple.com> | 2011-02-02 21:38:25 +0000 |
|---|---|---|
| committer | Devang Patel <dpatel@apple.com> | 2011-02-02 21:38:25 +0000 |
| commit | 3a9e65efb6019514fc332382f03b33afae484fb8 (patch) | |
| tree | 5209e6d136152c2303583453a51c53087ebd27f4 /llvm/lib/Analysis/DIBuilder.cpp | |
| parent | ac540b385900c95c185bd7d113420e6e4cdbd842 (diff) | |
| download | bcm5719-llvm-3a9e65efb6019514fc332382f03b33afae484fb8.tar.gz bcm5719-llvm-3a9e65efb6019514fc332382f03b33afae484fb8.zip | |
Add support to describe template parameter type in debug info.
llvm-svn: 124752
Diffstat (limited to 'llvm/lib/Analysis/DIBuilder.cpp')
| -rw-r--r-- | llvm/lib/Analysis/DIBuilder.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/DIBuilder.cpp b/llvm/lib/Analysis/DIBuilder.cpp index c59e8285ff1..14147b88f33 100644 --- a/llvm/lib/Analysis/DIBuilder.cpp +++ b/llvm/lib/Analysis/DIBuilder.cpp @@ -242,7 +242,7 @@ DIType DIBuilder::CreateClassType(DIDescriptor Context, StringRef Name, uint64_t SizeInBits, uint64_t AlignInBits, uint64_t OffsetInBits, unsigned Flags, DIType DerivedFrom, DIArray Elements, - MDNode *VTableHoder) { + MDNode *VTableHoder, MDNode *TemplateParams) { // TAG_class_type is encoded in DICompositeType format. Value *Elts[] = { GetTagConstant(VMContext, dwarf::DW_TAG_class_type), @@ -257,11 +257,31 @@ DIType DIBuilder::CreateClassType(DIDescriptor Context, StringRef Name, DerivedFrom, Elements, ConstantInt::get(Type::getInt32Ty(VMContext), 0), - VTableHoder + VTableHoder, + TemplateParams }; return DIType(MDNode::get(VMContext, &Elts[0], array_lengthof(Elts))); } +/// CreateTemplateTypeParameter - Create debugging information for template +/// type parameter. +DITemplateTypeParameter +DIBuilder::CreateTemplateTypeParameter(DIDescriptor Context, StringRef Name, + DIType Ty, MDNode *File, unsigned LineNo, + unsigned ColumnNo) { + Value *Elts[] = { + GetTagConstant(VMContext, dwarf::DW_TAG_template_type_parameter), + Context, + MDString::get(VMContext, Name), + Ty, + File, + ConstantInt::get(Type::getInt32Ty(VMContext), LineNo), + ConstantInt::get(Type::getInt32Ty(VMContext), ColumnNo) + }; + return DITemplateTypeParameter(MDNode::get(VMContext, &Elts[0], + array_lengthof(Elts))); +} + /// CreateStructType - Create debugging information entry for a struct. DIType DIBuilder::CreateStructType(DIDescriptor Context, StringRef Name, DIFile File, unsigned LineNumber, |

