[DebugInfo] Improvements to representation of enumeration types (PR36168)

This patch:

* fixes an incorrect sign-extension of unsigned values, when emitting
  debug info metadata for enumerators
* the enumerators metadata is created with a flag, which determines
  interpretation of the value bits (signed or unsigned)
* the enumerations metadata contains the underlying integer type and a
  flag, indicating whether this is a C++ "fixed enum"

Differential Revision: https://reviews.llvm.org/D42736

llvm-svn: 324490
This commit is contained in:
Momchil Velikov
2018-02-07 16:52:02 +00:00
parent c502027efd
commit d7e17c232f
5 changed files with 112 additions and 10 deletions

View File

@@ -48,7 +48,7 @@
// CHECK: !DICompositeType(tag: DW_TAG_enumeration_type,
// CHECK-NOT: name:
// CHECK-SAME: )
// CHECK: !DIEnumerator(name: "e5", value: 5)
// CHECK: !DIEnumerator(name: "e5", value: 5, isUnsigned: true)
// CHECK: !DIDerivedType(tag: DW_TAG_typedef, name: "B",
// no mangled name here yet.