summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMomchil Velikov <momchil.velikov@arm.com>2018-02-07 20:28:47 +0000
committerMomchil Velikov <momchil.velikov@arm.com>2018-02-07 20:28:47 +0000
commit74906a467c4a50243c79b8a39004b06b0bd42bbe (patch)
tree411984342a3d5e8e138466fb70745a5a2a5637c9 /llvm/lib/CodeGen
parentcd8d6de381d391a16e41257839baf5b7702289d0 (diff)
downloadbcm5719-llvm-74906a467c4a50243c79b8a39004b06b0bd42bbe.tar.gz
bcm5719-llvm-74906a467c4a50243c79b8a39004b06b0bd42bbe.zip
Revert "[DebugInfo] Improvements to representation of enumeration types (PR36168)"
Revert commit r324489, it broke LLDB tests. llvm-svn: 324511
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 939d13faec0..0e6ed1c349f 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -1427,15 +1427,6 @@ void DwarfUnit::constructArrayTypeDIE(DIE &Buffer, const DICompositeType *CTy) {
}
void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, const DICompositeType *CTy) {
- const DIType *DTy = resolve(CTy->getBaseType());
- bool IsUnsigned = DTy && isUnsignedDIType(DD, DTy);
- if (DTy && DD->getDwarfVersion() >= 3)
- addType(Buffer, DTy);
- if (DD->getDwarfVersion() >= 4 && (CTy->getFlags() & DINode::FlagFixedEnum)) {
- assert(DTy);
- addFlag(Buffer, dwarf::DW_AT_enum_class);
- }
-
DINodeArray Elements = CTy->getElements();
// Add enumerators to enumeration type.
@@ -1445,10 +1436,16 @@ void DwarfUnit::constructEnumTypeDIE(DIE &Buffer, const DICompositeType *CTy) {
DIE &Enumerator = createAndAddDIE(dwarf::DW_TAG_enumerator, Buffer);
StringRef Name = Enum->getName();
addString(Enumerator, dwarf::DW_AT_name, Name);
- auto Value = static_cast<uint64_t>(Enum->getValue());
- addConstantValue(Enumerator, IsUnsigned, Value);
+ int64_t Value = Enum->getValue();
+ addSInt(Enumerator, dwarf::DW_AT_const_value, dwarf::DW_FORM_sdata,
+ Value);
}
}
+ const DIType *DTy = resolve(CTy->getBaseType());
+ if (DTy) {
+ addType(Buffer, DTy);
+ addFlag(Buffer, dwarf::DW_AT_enum_class);
+ }
}
void DwarfUnit::constructContainingTypeDIEs() {
OpenPOWER on IntegriCloud