summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorJim Laskey <jlaskey@mac.com>2006-11-09 16:32:26 +0000
committerJim Laskey <jlaskey@mac.com>2006-11-09 16:32:26 +0000
commitf1606b80f11f4a8dafabd618921e3568f092a2df (patch)
tree468a0349a88ea7eb5d83516d47fb46bc7a0a2c6a /llvm/lib
parent97f89b11b392941f7f6f14d92024d00ad4bdbf7a (diff)
downloadbcm5719-llvm-f1606b80f11f4a8dafabd618921e3568f092a2df.tar.gz
bcm5719-llvm-f1606b80f11f4a8dafabd618921e3568f092a2df.zip
Allows debugging llc self hosted.
llvm-svn: 31594
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/DwarfWriter.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/lib/CodeGen/DwarfWriter.cpp b/llvm/lib/CodeGen/DwarfWriter.cpp
index f16986ba017..c1279d0a9c9 100644
--- a/llvm/lib/CodeGen/DwarfWriter.cpp
+++ b/llvm/lib/CodeGen/DwarfWriter.cpp
@@ -289,6 +289,7 @@ public:
unsigned getAbbrevNumber() const {
return Abbrev.getNumber();
}
+ unsigned getTag() const { return Abbrev.getTag(); }
unsigned getOffset() const { return Offset; }
unsigned getSize() const { return Size; }
const std::vector<DIE *> &getChildren() const { return Children; }
@@ -1438,8 +1439,12 @@ private:
Buffer.setTag(DW_TAG_base_type);
AddUInt(&Buffer, DW_AT_encoding, DW_FORM_data1, BasicTy->getEncoding());
} else if (DerivedTypeDesc *DerivedTy = dyn_cast<DerivedTypeDesc>(TyDesc)) {
- // Pointers, tyepdefs et al.
- Buffer.setTag(DerivedTy->getTag());
+ // Fetch tag.
+ unsigned Tag = DerivedTy->getTag();
+ // FIXME - Workaround for templates.
+ if (Tag == DW_TAG_inheritance) Tag = DW_TAG_reference_type;
+ // Pointers, typedefs et al.
+ Buffer.setTag(Tag);
// Map to main type, void will not have a type.
if (TypeDesc *FromTy = DerivedTy->getFromType())
AddType(&Buffer, FromTy, Unit);
OpenPOWER on IntegriCloud