• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -triple x86_64-pc-linux %s -filetype=obj -o - | llvm-dwarfdump -debug-names - | FileCheck %s
2	.section	.debug_str,"MS",@progbits,1
3.Linfo_string0:
4	.asciz	"foo"
5.Linfo_string1:
6	.asciz	"bar"
7
8# Fake .debug_info. We just need it for the offsets to two "compile units" and
9# two "DIEs"
10	.section	.debug_info,"",@progbits
11.Lcu_begin0:
12	.byte	0
13.Ldie0:
14	.byte	0
15.Lcu_begin1:
16	.byte	0
17.Ldie1:
18	.byte	0
19
20	.section	.debug_names,"",@progbits
21	.long	.Lnames_end0-.Lnames_start0 # Header: contribution length
22.Lnames_start0:
23	.short	5                       # Header: version
24	.short	0                       # Header: padding
25	.long	1                       # Header: compilation unit count
26	.long	0                       # Header: local type unit count
27	.long	0                       # Header: foreign type unit count
28	.long	0                       # Header: bucket count
29	.long	1                       # Header: name count
30	.long	.Lnames_abbrev_end0-.Lnames_abbrev_start0 # Header: abbreviation table size
31	.long	0                       # Header: augmentation length
32	.long	.Lcu_begin0             # Compilation unit 0
33	.long	.Linfo_string0          # String 1: foo
34	.long	.Lnames0-.Lnames_entries0 # Offset 1
35.Lnames_abbrev_start0:
36	.byte	46                      # Abbrev code
37	.byte	46                      # DW_TAG_subprogram
38	.byte	3                       # DW_IDX_die_offset
39	.byte	19                      # DW_FORM_ref4
40	.byte	0                       # End of abbrev
41	.byte	0                       # End of abbrev
42	.byte	0                       # End of abbrev list
43.Lnames_abbrev_end0:
44.Lnames_entries0:
45.Lnames0:
46	.byte	46                      # Abbrev code
47	.long	.Ldie0-.Lcu_begin0      # DW_IDX_die_offset
48	.long	0                       # End of list: foo
49	.p2align	2
50        .byte   42                      # Deliberately misalign the next contribution
51.Lnames_end0:
52
53	.long	.Lnames_end1-.Lnames_start1 # Header: contribution length
54.Lnames_start1:
55	.short	5                       # Header: version
56	.short	0                       # Header: padding
57	.long	1                       # Header: compilation unit count
58	.long	0                       # Header: local type unit count
59	.long	0                       # Header: foreign type unit count
60	.long	0                       # Header: bucket count
61	.long	1                       # Header: name count
62	.long	.Lnames_abbrev_end1-.Lnames_abbrev_start1 # Header: abbreviation table size
63	.long	0                       # Header: augmentation length
64	.long	.Lcu_begin1             # Compilation unit 0
65	.long	.Linfo_string1          # String 1: bar
66	.long	.Lnames1-.Lnames_entries1 # Offset 1
67.Lnames_abbrev_start1:
68	.byte	52                      # Abbrev code
69	.byte	52                      # DW_TAG_variable
70	.byte	3                       # DW_IDX_die_offset
71	.byte	19                      # DW_FORM_ref4
72	.byte	0                       # End of abbrev
73	.byte	0                       # End of abbrev
74	.byte	0                       # End of abbrev list
75.Lnames_abbrev_end1:
76.Lnames_entries1:
77.Lnames1:
78	.byte	52                      # Abbrev code
79	.long	.Ldie1-.Lcu_begin1      # DW_IDX_die_offset
80	.long	0                       # End of list: bar
81	.p2align	2
82.Lnames_end1:
83# CHECK:     Name Index @ 0x0
84# CHECK:       Name 1 {
85# CHECK-NEXT:    String: 0x00000000 "foo"
86# CHECK-NEXT:    Entry @ 0x37 {
87# CHECK-NEXT:      Abbrev: 0x2E
88# CHECK-NEXT:      Tag: DW_TAG_subprogram
89# CHECK-NEXT:      DW_IDX_die_offset: 0x00000001
90# CHECK-NEXT:    }
91# CHECK-NEXT:  }
92
93# CHECK:     Name Index @ 0x41
94# CHECK:       Name 1 {
95# CHECK-NEXT:    String: 0x00000004 "bar"
96# CHECK-NEXT:    Entry @ 0x78 {
97# CHECK-NEXT:      Abbrev: 0x34
98# CHECK-NEXT:      Tag: DW_TAG_variable
99# CHECK-NEXT:      DW_IDX_die_offset: 0x00000001
100# CHECK-NEXT:    }
101# CHECK-NEXT:  }
102