From a566e818c5d4de47684cd5368ac6cea931d8a4a8 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Mon, 5 Jan 2009 18:38:38 +0000 Subject: [PATCH] Construct enumerator DIE using DebugInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61726 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/DebugInfo.h | 2 +- lib/CodeGen/AsmPrinter/DwarfWriter.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/include/llvm/Analysis/DebugInfo.h b/include/llvm/Analysis/DebugInfo.h index fac86b3e01d..c97cb2616f2 100644 --- a/include/llvm/Analysis/DebugInfo.h +++ b/include/llvm/Analysis/DebugInfo.h @@ -126,7 +126,7 @@ namespace llvm { explicit DIEnumerator(GlobalVariable *GV = 0); std::string getName() const { return getStringField(1); } - uint64_t getLanguage() const { return getUInt64Field(2); } + uint64_t getEnumValue() const { return getUInt64Field(2); } }; /// DIType - This is a wrapper for a type. diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp index af419822255..3176c38141d 100644 --- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp +++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp @@ -1579,6 +1579,17 @@ private: } } + /// ConstructEnumTypeDIE - Construct enum type DIE from + /// DIEnumerator. + void ConstructEnumType(CompileUnit *DW_Unit, + DIE &Buffer, DIEnumerator *ETy) { + + DIE *Enumerator = new DIE(DW_TAG_enumerator); + AddString(Enumerator, DW_AT_name, DW_FORM_string, ETy->getName()); + int64_t Value = ETy->getEnumValue(); + AddSInt(Enumerator, DW_AT_const_value, DW_FORM_sdata, Value); + Buffer.AddChild(Enumerator); + } /// ConstructType - Adds all the required attributes to the type. /// -- 2.11.0