From 85f419b36c5bd9802476721eb4ceeec953a21e29 Mon Sep 17 00:00:00 2001 From: Jim Laskey Date: Thu, 9 Nov 2006 16:32:26 +0000 Subject: [PATCH] Allows debugging llc self hosted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31594 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/DwarfWriter.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/CodeGen/DwarfWriter.cpp b/lib/CodeGen/DwarfWriter.cpp index f16986ba017..c1279d0a9c9 100644 --- a/lib/CodeGen/DwarfWriter.cpp +++ b/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 &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(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);