[HLSL] Implement RWBuffer::operator[] via __builtin_hlsl_resource_getpointer (#117017)
[llvm-project.git] / llvm / test / tools / dsymutil / ARM / dwarf5-dwarf4-combination-macho.test
blobfb15f46ce0b24513155d5ce435e225ceda87ddc7
1 ; This test checks to ensure that if a DWARF v5 and DWARF v4 object file is used to
2 ; generate a dsym, dsymutil correctly outputs the debug information, by keeping
3 ; the DWARF v5 and DWARF v4 debug info distinct, and that all the section headers
4 ; have the correct format.
6 ; 1.o was produced with the source file:
8 ; a.cpp
9 ; __attribute__((section("1,__text_foo"))) void foo() {}
11 ; int foo2(int a) {
12 ;     return a+5;
13 ; }
14 ; int main () {
15 ;     return 1;
16 ; }
18 ; clang -g -c -O1 a.cpp -Xclang -gdwarf-5 -o 1.o
20 ; 2.o was produced with the following source file:
22 ; b.cpp
23 ; __attribute__((section("1,__text_foo2"))) void foo2() {}
25 ; int bar(int x) {
26 ;     int y = x + 2;
27 ;     return y;
28 ; }
30 ; clang -g -c -O1 b.cpp -gdwarf-4 -o 2.o
32 RUN: rm -rf %t.dir && mkdir -p %t.dir
33 RUN: dsymutil -y %p/dummy-debug-map-amr64.map -oso-prepend-path=%p/../Inputs/DWARF5-DWARF4-combination -o %t.dir/dwarf5-dwarf4-combination-macho.dSYM
34 RUN: llvm-dwarfdump %t.dir/dwarf5-dwarf4-combination-macho.dSYM -a --verbose | FileCheck %s --check-prefixes=CHECK,WITH-PARENTS
36 RUN: rm -rf %t.dir && mkdir -p %t.dir
37 RUN: dsymutil --no-odr --linker parallel -y %p/dummy-debug-map-amr64.map \
38 RUN:   -oso-prepend-path=%p/../Inputs/DWARF5-DWARF4-combination \
39 RUN:   -o %t.dir/dwarf5-dwarf4-combination-macho.dSYM
40 RUN: llvm-dwarfdump %t.dir/dwarf5-dwarf4-combination-macho.dSYM \
41 RUN:   -a --verbose | FileCheck %s --check-prefixes=CHECK,NO-PARENTS
43 ### Uncomment following when llvm-dwarfdump will dump address ranges
44 ### correctly for severall compile units case.
45 COM: rm -rf %t.dir && mkdir -p %t.dir
46 COM: dsymutil --linker parallel -y %p/dummy-debug-map-amr64.map \
47 COM:   -oso-prepend-path=%p/../Inputs/DWARF5-DWARF4-combination \
48 COM:   -o %t.dir/dwarf5-dwarf4-combination-macho.dSYM
49 COM: llvm-dwarfdump %t.dir/dwarf5-dwarf4-combination-macho.dSYM \
50 COM:   -a --verbose | FileCheck %s --check-prefixes=CHECK,CHECK-LLVM
53 CHECK:.debug_abbrev contents:
54 CHECK-NEXT: Abbrev table for offset: 0x00000000
56 CHECK: .debug_info contents:
57 CHECK-LLVM: Compile Unit: length = 0x0000001f,  format = DWARF32, version = 0x0005, unit_type = DW_UT_compile, abbr_offset = {{.*}}, addr_size = 0x08
58 CHECK-LLVM: DW_TAG_compile_unit
59 CHECK-LLVM: DW_TAG_base_type
61 CHECK: Compile Unit: length = 0x0000004a, format = DWARF32, version = 0x0005, unit_type = DW_UT_compile, abbr_offset = {{.*}}, addr_size = 0x08
62 CHECK: DW_AT_producer [DW_FORM_strx]     (indexed (00000000) string = "Apple clang version 14.0.3 (clang-1403.0.22.14.1)")
63 CHECK: DW_AT_name [DW_FORM_strx] (indexed (00000001) string = "a.cpp")
64 CHECK: DW_AT_LLVM_sysroot [DW_FORM_strx] (indexed (00000002) string = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk")
65 CHECK: DW_AT_APPLE_sdk [DW_FORM_strx]    (indexed (00000003) string = "MacOSX.sdk")
66 CHECK: DW_AT_str_offsets_base [DW_FORM_sec_offset]       (0x00000008)
67 CHECK: DW_AT_comp_dir [DW_FORM_strx]     (indexed (00000004) string = "/Users/shubham/Development/test109275485")
68 CHECK: DW_AT_ranges [DW_FORM_sec_offset] (0x[[RANGELIST_OFFSET:[0-9a-f]+]]
69 CHECK-NEXT:                  [0x[[RANGELIST_OFFSET_START:[0-9a-f]+]], 0x[[RANGELIST_OFFSET_END:[0-9a-f]+]]))
70 CHECK-NEXT: DW_AT_addr_base [DW_FORM_sec_offset]      (0x00000008)
71 CHECK:   DW_TAG_subprogram
72 CHECK-NEXT:  DW_AT_low_pc [DW_FORM_addrx]     (indexed (00000000) address = 0x[[#%.16x,LOCLIST_LOWPC:]])
73 CHECK: DW_AT_linkage_name [DW_FORM_strx]       (indexed (00000005) string = "_Z4foo2i")
74 CHECK: DW_AT_name [DW_FORM_strx]       (indexed (00000006) string = "foo2")
75 CHECK:     DW_TAG_formal_parameter
76 CHECK-NEXT:                   DW_AT_location [DW_FORM_sec_offset]   (0x[[LOCLIST_OFFSET:[0-9a-f]+]]:
77 CHECK-NEXT:                      [0x[[#%.16x,LOCLIST_PAIR_START:]], 0x[[#%.16x,LOCLIST_PAIR_END:]]): [[LOCLIST_EXPR:.*]]
78 CHECK-NEXT:                      [0x[[#%.16x,LOCLIST_PAIR_START2:]], 0x[[#%.16x,LOCLIST_PAIR_END2:]]): [[LOCLIST_EXPR2:.*]])
79 CHECK: DW_AT_name [DW_FORM_strx]     (indexed (00000007) string = "a")
81 CHECK: Compile Unit: length = 0x00000072, format = DWARF32, version = 0x0004, abbr_offset = {{.*}}, addr_size = 0x08
82 CHECK: DW_AT_producer [DW_FORM_strp]     ( .debug_str[0x00000001] = "Apple clang version 14.0.3 (clang-1403.0.22.14.1)")
83 CHECK: DW_AT_name [DW_FORM_strp] ( .debug_str[0x000000e0] = "b.cpp")
84 CHECK: DW_AT_LLVM_sysroot [DW_FORM_strp] ( .debug_str[0x00000039] = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk")
85 CHECK: DW_AT_APPLE_sdk [DW_FORM_strp]    ( .debug_str[0x00000098] = "MacOSX.sdk")
86 CHECK-NOT: DW_AT_str_offsets_base
87 CHECK: DW_AT_comp_dir [DW_FORM_strp]     ( .debug_str[0x000000a3] = "/Users/shubham/Development/test109275485")
88 CHECK:              DW_AT_low_pc [DW_FORM_addr]       (0x[[#%.16x,RANGE_LOWPC:]])
89 CHECK-NEXT:              DW_AT_ranges [DW_FORM_sec_offset] (0x00000000
90 CHECK-NEXT:                 [0x[[#%.16x,RANGE_START:]], 0x[[#%.16x,RANGE_END:]]))
91 CHECK:   DW_TAG_subprogram
92 CHECK-NEXT:                DW_AT_low_pc [DW_FORM_addr]     (0x[[#%.16x,LOC_LOWPC:]])
93 CHECK: DW_AT_linkage_name [DW_FORM_strp]       ( .debug_str[0x000000e6] = "_Z3bari")
94 CHECK: DW_AT_name [DW_FORM_strp]       ( .debug_str[0x000000ee] = "bar")
95 CHECK:     DW_TAG_formal_parameter
96 CHECK-NEXT:                  DW_AT_location [DW_FORM_sec_offset]   (0x[[LOC_OFFSET:[0-9a-f]+]]:
97 CHECK-NEXT:                     [0x[[#%.16x,LOC_PAIR_START:]], 0x[[#%.16x,LOC_PAIR_END:]]): [[LOC_EXPR:.*]]
98 CHECK-NEXT:                     [0x[[#%.16x,LOC_PAIR_START2:]], 0x[[#%.16x,LOC_PAIR_END2:]]): [[LOC_EXPR2:.*]])
99 CHECK: DW_AT_name [DW_FORM_strp]     ( .debug_str[0x000000f2] = "x")
101 CHECK: .debug_loc contents:
102 CHECK-NEXT: 0x[[LOC_OFFSET]]:
103 CHECK-NEXT:            (0x[[#sub(LOC_PAIR_START,LOC_LOWPC)]], 0x[[#sub(LOC_PAIR_END,LOC_LOWPC)]]): [[LOC_EXPR:.*]]
104 CHECK-NEXT:            (0x[[#sub(LOC_PAIR_START2,LOC_LOWPC)]], 0x[[#sub(LOC_PAIR_END2,LOC_LOWPC)]]): [[LOC_EXPR2:.*]]
106 CHECK: .debug_loclists contents:
107 CHECK-NEXT: 0x00000000: locations list header: length = 0x00000018, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000
108 CHECK-NEXT: 0x[[LOCLIST_OFFSET]]:
109 CHECK-NEXT:            DW_LLE_base_addressx   (0x0000000000000000)
110 CHECK-NEXT:            DW_LLE_offset_pair     (0x[[#sub(LOCLIST_PAIR_START,LOCLIST_LOWPC)]], 0x[[#sub(LOCLIST_PAIR_END,LOCLIST_LOWPC)]])
111 CHECK-NEXT:            DW_LLE_offset_pair     (0x[[#sub(LOCLIST_PAIR_START2,LOCLIST_LOWPC)]], 0x[[#sub(LOCLIST_PAIR_END2,LOCLIST_LOWPC)]])
112 CHECK-NEXT:            DW_LLE_end_of_list     ()
114 CHECK: .debug_line contents:
115 CHECK-NEXT: debug_line[0x00000000]
116 CHECK-NEXT: Line table prologue:
117 CHECK-NEXT:     total_length: 0x0000005a
118 CHECK-NEXT:           format: DWARF32
119 CHECK-NEXT:          version: 5
120 CHECK-NEXT:     address_size: 8
121 CHECK-NEXT:  seg_select_size: 0
122 CHECK-NEXT:  prologue_length: 0x00000037
123 CHECK-NEXT:  min_inst_length: 1
124 CHECK-NEXT: max_ops_per_inst: 1
125 CHECK-NEXT:  default_is_stmt: 1
126 CHECK-NEXT:        line_base: -5
127 CHECK-NEXT:       line_range: 14
128 CHECK-NEXT:      opcode_base: 13
129 CHECK-NEXT: standard_opcode_lengths[DW_LNS_copy] = 0
130 CHECK-NEXT: standard_opcode_lengths[DW_LNS_advance_pc] = 1
131 CHECK-NEXT: standard_opcode_lengths[DW_LNS_advance_line] = 1
132 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_file] = 1
133 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_column] = 1
134 CHECK-NEXT: standard_opcode_lengths[DW_LNS_negate_stmt] = 0
135 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_basic_block] = 0
136 CHECK-NEXT: standard_opcode_lengths[DW_LNS_const_add_pc] = 0
137 CHECK-NEXT: standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
138 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
139 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
140 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 1
141 CHECK-NEXT: include_directories[  0] =  .debug_line_str[0x00000000] = "/Users/shubham/Development/test109275485"
142 CHECK-NEXT: file_names[  0]:
143 CHECK-NEXT:            name:  .debug_line_str[0x00000029] = "a.cpp"
144 CHECK-NEXT:       dir_index: 0
146 CHECK: debug_line[0x0000005e]
147 CHECK-NEXT: Line table prologue:
148 CHECK-NEXT:     total_length: 0x0000003b
149 CHECK-NEXT:           format: DWARF32
150 CHECK-NEXT:          version: 4
151 CHECK-NEXT:  prologue_length: 0x0000001d
152 CHECK-NEXT:  min_inst_length: 1
153 CHECK-NEXT: max_ops_per_inst: 1
154 CHECK-NEXT:  default_is_stmt: 1
155 CHECK-NEXT:        line_base: -5
156 CHECK-NEXT:       line_range: 14
157 CHECK-NEXT:      opcode_base: 13
158 CHECK-NEXT: standard_opcode_lengths[DW_LNS_copy] = 0
159 CHECK-NEXT: standard_opcode_lengths[DW_LNS_advance_pc] = 1
160 CHECK-NEXT: standard_opcode_lengths[DW_LNS_advance_line] = 1
161 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_file] = 1
162 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_column] = 1
163 CHECK-NEXT: standard_opcode_lengths[DW_LNS_negate_stmt] = 0
164 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_basic_block] = 0
165 CHECK-NEXT: standard_opcode_lengths[DW_LNS_const_add_pc] = 0
166 CHECK-NEXT: standard_opcode_lengths[DW_LNS_fixed_advance_pc] = 1
167 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_prologue_end] = 0
168 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_epilogue_begin] = 0
169 CHECK-NEXT: standard_opcode_lengths[DW_LNS_set_isa] = 1
170 CHECK-NEXT: file_names[  1]:
171 CHECK-NEXT:            name: "b.cpp"
172 CHECK-NEXT:       dir_index: 0
173 CHECK-NEXT:        mod_time: 0x00000000
174 CHECK-NEXT:          length: 0x00000000
176 CHECK: .debug_str contents:
177 CHECK-NEXT: 0x00000000: ""
178 CHECK-NEXT: 0x00000001: "Apple clang version 14.0.3 (clang-1403.0.22.14.1)"
179 CHECK-NEXT: 0x00000033: "a.cpp"
180 CHECK-NEXT: 0x00000039: "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
181 CHECK-NEXT: 0x00000098: "MacOSX.sdk"
182 CHECK-NEXT: 0x000000a3: "/Users/shubham/Development/test109275485"
183 CHECK-NEXT: 0x000000cc: "_Z4foo2i"
184 CHECK-NEXT: 0x000000d5: "foo2"
185 CHECK-NEXT: 0x000000da: "a"
186 CHECK-NEXT: 0x000000dc: "int"
187 CHECK-NEXT: 0x000000e0: "b.cpp"
188 CHECK-NEXT: 0x000000e6: "_Z3bari"
189 CHECK-NEXT: 0x000000ee: "bar"
190 CHECK-NEXT: 0x000000f2: "x"
191 CHECK-NEXT: 0x000000f4: "y"
193 CHECK: .debug_line_str contents:
194 CHECK-NEXT: 0x00000000: "/Users/shubham/Development/test109275485"
195 CHECK-NEXT: 0x00000029: "a.cpp"
197 CHECK: .debug_ranges contents:
198 CHECK-NEXT: 00000000 [[#sub(RANGE_START,RANGE_LOWPC)]] [[#sub(RANGE_END,RANGE_LOWPC)]]
200 CHECK: .debug_rnglists contents:
201 CHECK-NEXT: 0x00000000: range list header: length = 0x0000000e, format = DWARF32, version = 0x0005, addr_size = 0x08, seg_size = 0x00, offset_entry_count = 0x00000000
202 CHECK-NEXT: ranges:
203 CHECK-NEXT: [[RANGELIST_OFFSET]]: [DW_RLE_base_addressx]:  0x0000000000000000
204 CHECK-NEXT: 0x0000000e: [DW_RLE_offset_pair  ]: {{.*}}[0x[[RANGELIST_OFFSET_START]], 0x[[RANGELIST_OFFSET_END]])
205 CHECK-NEXT: 0x00000011: [DW_RLE_end_of_list  ]
207 CHECK: .debug_str_offsets contents:
208 CHECK-NEXT: 0x00000000: Contribution size = 40, Format = DWARF32, Version = 5
209 CHECK-NEXT: 0x00000008: 00000001 "Apple clang version 14.0.3 (clang-1403.0.22.14.1)"
210 CHECK-NEXT: 0x0000000c: 00000033 "a.cpp"
211 CHECK-NEXT: 0x00000010: 00000039 "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk"
212 CHECK-NEXT: 0x00000014: 00000098 "MacOSX.sdk"
213 CHECK-NEXT: 0x00000018: 000000a3 "/Users/shubham/Development/test109275485"
214 CHECK-NEXT: 0x0000001c: 000000cc "_Z4foo2i"
215 CHECK-NEXT: 0x00000020: 000000d5 "foo2"
216 CHECK-NEXT: 0x00000024: 000000da "a"
217 CHECK-NEXT: 0x00000028: 000000dc "int"
219 CHECK: .debug_names contents:
220 CHECK-NEXT: Name Index @ 0x0 {
221 CHECK-NEXT:   Header {
222 ; FIXME: when the parallel dwarf linker is able to generate DW_IDX_parent,
223 ; these headers should be the same.
224 WITH-PARENTS-NEXT: Length: 0xC0
225 NO-PARENTS-NEXT:   Length: 0xBC
226 CHECK-NEXT:     Format: DWARF32
227 CHECK-NEXT:     Version: 5
228 CHECK-NEXT:     CU count: 2
229 CHECK-NEXT:     Local TU count: 0
230 CHECK-NEXT:     Foreign TU count: 0
231 CHECK-NEXT:     Bucket count: 5
232 CHECK-NEXT:     Name count: 5
233 WITH-PARENTS-NEXT:     Abbreviations table size: 0x15
234 NO-PARENTS-NEXT:       Abbreviations table size: 0x11
235 CHECK-NEXT:     Augmentation: 'LLVM0700'
236 CHECK-NEXT:   }