summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DIBuilder.cpp
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-02-02 21:38:25 +0000
committerDevang Patel <dpatel@apple.com>2011-02-02 21:38:25 +0000
commit3a9e65efb6019514fc332382f03b33afae484fb8 (patch)
tree5209e6d136152c2303583453a51c53087ebd27f4 /llvm/lib/Analysis/DIBuilder.cpp
parentac540b385900c95c185bd7d113420e6e4cdbd842 (diff)
downloadbcm5719-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.cpp24
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,
OpenPOWER on IntegriCloud