summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorMomchil Velikov <momchil.velikov@arm.com>2018-02-15 13:29:33 +0000
committerMomchil Velikov <momchil.velikov@arm.com>2018-02-15 13:29:33 +0000
commit6acc0e555b8a91a07fbeec1ea46cf33bee9c71cb (patch)
tree605493792d0ab4b4631b19aa56941afc59784f4f /llvm/test
parent2c5e8e820b14739c7a59f3bbd7ce11e55a8f5ea2 (diff)
downloadbcm5719-llvm-6acc0e555b8a91a07fbeec1ea46cf33bee9c71cb.tar.gz
bcm5719-llvm-6acc0e555b8a91a07fbeec1ea46cf33bee9c71cb.zip
[DebugInfo] Accept enumeration types without underlying integer type present in
debug info metadata ... when generating DWARF. Differential Revision: https://reviews.llvm.org/D43304 llvm-svn: 325234
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/DebugInfo/Generic/debug-info-enum.ll17
1 files changed, 16 insertions, 1 deletions
diff --git a/llvm/test/DebugInfo/Generic/debug-info-enum.ll b/llvm/test/DebugInfo/Generic/debug-info-enum.ll
index c380fdc16ed..5d887cd5cb8 100644
--- a/llvm/test/DebugInfo/Generic/debug-info-enum.ll
+++ b/llvm/test/DebugInfo/Generic/debug-info-enum.ll
@@ -162,13 +162,26 @@
!42 = !{!43, !44}
!43 = !DIEnumerator(name: "A8", value: -128)
!44 = !DIEnumerator(name: "B8", value: 127)
-!45 = !{!0, !46, !48, !50, !52, !54, !56, !58, !60}
; CHECK: DW_TAG_enumeration_type
; CHECK-DW2-NOT: DW_AT_type
; CHECK-DW4: DW_AT_type{{.*}}"int"
; CHECK-NOT: DW_AT_enum_class
; CHECK: DW_AT_name ("E8")
+; Test enumeration without a fixed underlying type, but with the DIFlagFixedEnum
+; set. The DW_AT_enum_class attribute should be absent. This behaviour is
+; intented to keep compatibilty with existing DWARF consumers, which may imply
+; the type is present whenever DW_AT_enum_class is set.
+!63 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "E9", file: !3, line: 63, size: 32, flags: DIFlagFixedEnum, elements: !64, identifier: "_ZTS2E9")
+!64 = !{!65, !66}
+!65 = !DIEnumerator(name: "A9", value: -128)
+!66 = !DIEnumerator(name: "B9", value: 127)
+; CHECK: DW_TAG_enumeration_type
+; CHECK-NOT: DW_AT_type
+; CHECK-NOT: DW_AT_enum_class
+; CHECK: DW_AT_name ("E9")
+
+!45 = !{!0, !46, !48, !50, !52, !54, !56, !58, !60, !67}
!46 = !DIGlobalVariableExpression(var: !47, expr: !DIExpression())
!47 = distinct !DIGlobalVariable(name: "x1", scope: !2, file: !3, line: 12, type: !10, isLocal: false, isDefinition: true)
!48 = !DIGlobalVariableExpression(var: !49, expr: !DIExpression())
@@ -185,4 +198,6 @@
!59 = distinct !DIGlobalVariable(name: "x7", scope: !2, file: !3, line: 57, type: !37, isLocal: false, isDefinition: true)
!60 = !DIGlobalVariableExpression(var: !61, expr: !DIExpression())
!61 = distinct !DIGlobalVariable(name: "x8", scope: !2, file: !3, line: 63, type: !41, isLocal: false, isDefinition: true)
+!67 = !DIGlobalVariableExpression(var: !68, expr: !DIExpression())
+!68 = distinct !DIGlobalVariable(name: "x9", scope: !2, file: !3, line: 63, type: !63, isLocal: false, isDefinition: true)
!62 = !{i32 2, !"Debug Info Version", i32 3}
OpenPOWER on IntegriCloud