xref: /llvm-project/llvm/test/tools/llvm-objdump/ELF/ARM/debug-vars-wide-chars.s (revision 2b38f589301d7defef6099b57ecf45139010a5a7)
1d1bcddb5SFangrui Song# RUN: mkdir -p %t/a
2d1bcddb5SFangrui Song# RUN: cp %p/Inputs/wide-char.c %t/a/wide-char.c
3d1bcddb5SFangrui Song# RUN: sed -e "s,SRC_COMPDIR,%/t/a,g" %s > %t.s
4d1bcddb5SFangrui Song# RUN: llvm-mc -triple armv8a--none-eabi < %t.s -filetype=obj | \
5d1bcddb5SFangrui Song# RUN:     llvm-objdump - -d --debug-vars --source | \
6d1bcddb5SFangrui Song# RUN:     FileCheck %s --strict-whitespace
7d1bcddb5SFangrui Song
8d1bcddb5SFangrui Song## The Chinese character in the source does not print correctly on Windows.
9d1bcddb5SFangrui Song# UNSUPPORTED: system-windows
10d1bcddb5SFangrui Song
11d1bcddb5SFangrui Song## Check that the --debug-vars option correctly aligns the variable display when
12d1bcddb5SFangrui Song## the source code (printed by the -S option) includes East Asian wide
13d1bcddb5SFangrui Song## characters.
14d1bcddb5SFangrui Song
15d1bcddb5SFangrui Song# CHECK: 00000000 <foo>:
16d1bcddb5SFangrui Song# CHECK-NEXT: ;   return *喵;                                                             ┠─ 喵 = R0
17*2b38f589SSimon Tatham# CHECK-NEXT:        0: e5900000     	ldr	r0, [r0]                                    ┻
18*2b38f589SSimon Tatham# CHECK-NEXT:        4: e12fff1e     	bx	lr
19d1bcddb5SFangrui Song
20d1bcddb5SFangrui Song	.text
21d1bcddb5SFangrui Song	.syntax unified
22d1bcddb5SFangrui Song	.eabi_attribute	67, "2.09"
23d1bcddb5SFangrui Song	.eabi_attribute	6, 10
24d1bcddb5SFangrui Song	.eabi_attribute	7, 65
25d1bcddb5SFangrui Song	.eabi_attribute	8, 1
26d1bcddb5SFangrui Song	.eabi_attribute	9, 2
27d1bcddb5SFangrui Song	.fpu	vfpv3
28d1bcddb5SFangrui Song	.eabi_attribute	34, 0
29d1bcddb5SFangrui Song	.eabi_attribute	17, 1
30d1bcddb5SFangrui Song	.eabi_attribute	20, 1
31d1bcddb5SFangrui Song	.eabi_attribute	21, 1
32d1bcddb5SFangrui Song	.eabi_attribute	23, 3
33d1bcddb5SFangrui Song	.eabi_attribute	24, 1
34d1bcddb5SFangrui Song	.eabi_attribute	25, 1
35d1bcddb5SFangrui Song	.eabi_attribute	38, 1
36d1bcddb5SFangrui Song	.eabi_attribute	18, 4
37d1bcddb5SFangrui Song	.eabi_attribute	26, 2
38d1bcddb5SFangrui Song	.eabi_attribute	14, 0
39d1bcddb5SFangrui Song	.file	"wide.c"
40d1bcddb5SFangrui Song	.globl	foo
41d1bcddb5SFangrui Song	.p2align	2
42d1bcddb5SFangrui Song	.type	foo,%function
43d1bcddb5SFangrui Song	.code	32
44d1bcddb5SFangrui Songfoo:
45d1bcddb5SFangrui Song.Lfunc_begin0:
46d1bcddb5SFangrui Song	.file	1 "SRC_COMPDIR/wide-char.c"
47d1bcddb5SFangrui Song	.loc	1 1 0
48d1bcddb5SFangrui Song	.fnstart
49d1bcddb5SFangrui Song	.cfi_sections .debug_frame
50d1bcddb5SFangrui Song	.cfi_startproc
51d1bcddb5SFangrui Song	.loc	1 2 10 prologue_end
52d1bcddb5SFangrui Song	ldr	r0, [r0]
53d1bcddb5SFangrui Song.Ltmp0:
54d1bcddb5SFangrui Song	.loc	1 2 3 is_stmt 0
55d1bcddb5SFangrui Song	bx	lr
56d1bcddb5SFangrui Song.Ltmp1:
57d1bcddb5SFangrui Song.Lfunc_end0:
58d1bcddb5SFangrui Song	.size	foo, .Lfunc_end0-foo
59d1bcddb5SFangrui Song	.cfi_endproc
60d1bcddb5SFangrui Song	.cantunwind
61d1bcddb5SFangrui Song	.fnend
62d1bcddb5SFangrui Song
63d1bcddb5SFangrui Song	.section	.debug_str,"MS",%progbits,1
64d1bcddb5SFangrui Song.Linfo_string0:
65d1bcddb5SFangrui Song	.asciz	"clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)"
66d1bcddb5SFangrui Song.Linfo_string1:
67d1bcddb5SFangrui Song	.asciz	"wide-char.c"
68d1bcddb5SFangrui Song.Linfo_string2:
69d1bcddb5SFangrui Song	.asciz	"SRC_COMPDIR"
70d1bcddb5SFangrui Song.Linfo_string3:
71d1bcddb5SFangrui Song	.asciz	"foo"
72d1bcddb5SFangrui Song.Linfo_string4:
73d1bcddb5SFangrui Song	.asciz	"int"
74d1bcddb5SFangrui Song.Linfo_string5:
75d1bcddb5SFangrui Song	.asciz	"\345\226\265"
76d1bcddb5SFangrui Song	.section	.debug_loc,"",%progbits
77d1bcddb5SFangrui Song.Ldebug_loc0:
78d1bcddb5SFangrui Song	.long	.Lfunc_begin0-.Lfunc_begin0
79d1bcddb5SFangrui Song	.long	.Ltmp0-.Lfunc_begin0
80d1bcddb5SFangrui Song	.short	1
81d1bcddb5SFangrui Song	.byte	80
82d1bcddb5SFangrui Song	.long	0
83d1bcddb5SFangrui Song	.long	0
84d1bcddb5SFangrui Song	.section	.debug_abbrev,"",%progbits
85d1bcddb5SFangrui Song	.byte	1
86d1bcddb5SFangrui Song	.byte	17
87d1bcddb5SFangrui Song	.byte	1
88d1bcddb5SFangrui Song	.byte	37
89d1bcddb5SFangrui Song	.byte	14
90d1bcddb5SFangrui Song	.byte	19
91d1bcddb5SFangrui Song	.byte	5
92d1bcddb5SFangrui Song	.byte	3
93d1bcddb5SFangrui Song	.byte	14
94d1bcddb5SFangrui Song	.byte	16
95d1bcddb5SFangrui Song	.byte	23
96d1bcddb5SFangrui Song	.byte	27
97d1bcddb5SFangrui Song	.byte	14
98d1bcddb5SFangrui Song	.ascii	"\264B"
99d1bcddb5SFangrui Song	.byte	25
100d1bcddb5SFangrui Song	.byte	17
101d1bcddb5SFangrui Song	.byte	1
102d1bcddb5SFangrui Song	.byte	18
103d1bcddb5SFangrui Song	.byte	6
104d1bcddb5SFangrui Song	.byte	0
105d1bcddb5SFangrui Song	.byte	0
106d1bcddb5SFangrui Song	.byte	2
107d1bcddb5SFangrui Song	.byte	46
108d1bcddb5SFangrui Song	.byte	1
109d1bcddb5SFangrui Song	.byte	17
110d1bcddb5SFangrui Song	.byte	1
111d1bcddb5SFangrui Song	.byte	18
112d1bcddb5SFangrui Song	.byte	6
113d1bcddb5SFangrui Song	.byte	64
114d1bcddb5SFangrui Song	.byte	24
115d1bcddb5SFangrui Song	.byte	3
116d1bcddb5SFangrui Song	.byte	14
117d1bcddb5SFangrui Song	.byte	58
118d1bcddb5SFangrui Song	.byte	11
119d1bcddb5SFangrui Song	.byte	59
120d1bcddb5SFangrui Song	.byte	11
121d1bcddb5SFangrui Song	.byte	39
122d1bcddb5SFangrui Song	.byte	25
123d1bcddb5SFangrui Song	.byte	73
124d1bcddb5SFangrui Song	.byte	19
125d1bcddb5SFangrui Song	.byte	63
126d1bcddb5SFangrui Song	.byte	25
127d1bcddb5SFangrui Song	.byte	0
128d1bcddb5SFangrui Song	.byte	0
129d1bcddb5SFangrui Song	.byte	3
130d1bcddb5SFangrui Song	.byte	5
131d1bcddb5SFangrui Song	.byte	0
132d1bcddb5SFangrui Song	.byte	2
133d1bcddb5SFangrui Song	.byte	23
134d1bcddb5SFangrui Song	.byte	3
135d1bcddb5SFangrui Song	.byte	14
136d1bcddb5SFangrui Song	.byte	58
137d1bcddb5SFangrui Song	.byte	11
138d1bcddb5SFangrui Song	.byte	59
139d1bcddb5SFangrui Song	.byte	11
140d1bcddb5SFangrui Song	.byte	73
141d1bcddb5SFangrui Song	.byte	19
142d1bcddb5SFangrui Song	.byte	0
143d1bcddb5SFangrui Song	.byte	0
144d1bcddb5SFangrui Song	.byte	4
145d1bcddb5SFangrui Song	.byte	36
146d1bcddb5SFangrui Song	.byte	0
147d1bcddb5SFangrui Song	.byte	3
148d1bcddb5SFangrui Song	.byte	14
149d1bcddb5SFangrui Song	.byte	62
150d1bcddb5SFangrui Song	.byte	11
151d1bcddb5SFangrui Song	.byte	11
152d1bcddb5SFangrui Song	.byte	11
153d1bcddb5SFangrui Song	.byte	0
154d1bcddb5SFangrui Song	.byte	0
155d1bcddb5SFangrui Song	.byte	5
156d1bcddb5SFangrui Song	.byte	15
157d1bcddb5SFangrui Song	.byte	0
158d1bcddb5SFangrui Song	.byte	73
159d1bcddb5SFangrui Song	.byte	19
160d1bcddb5SFangrui Song	.byte	0
161d1bcddb5SFangrui Song	.byte	0
162d1bcddb5SFangrui Song	.byte	0
163d1bcddb5SFangrui Song	.section	.debug_info,"",%progbits
164d1bcddb5SFangrui Song.Lcu_begin0:
165d1bcddb5SFangrui Song	.long	84
166d1bcddb5SFangrui Song	.short	4
167d1bcddb5SFangrui Song	.long	.debug_abbrev
168d1bcddb5SFangrui Song	.byte	4
169d1bcddb5SFangrui Song	.byte	1
170d1bcddb5SFangrui Song	.long	.Linfo_string0
171d1bcddb5SFangrui Song	.short	12
172d1bcddb5SFangrui Song	.long	.Linfo_string1
173d1bcddb5SFangrui Song	.long	.Lline_table_start0
174d1bcddb5SFangrui Song	.long	.Linfo_string2
175d1bcddb5SFangrui Song
176d1bcddb5SFangrui Song	.long	.Lfunc_begin0
177d1bcddb5SFangrui Song	.long	.Lfunc_end0-.Lfunc_begin0
178d1bcddb5SFangrui Song	.byte	2
179d1bcddb5SFangrui Song	.long	.Lfunc_begin0
180d1bcddb5SFangrui Song	.long	.Lfunc_end0-.Lfunc_begin0
181d1bcddb5SFangrui Song	.byte	1
182d1bcddb5SFangrui Song	.byte	91
183d1bcddb5SFangrui Song	.long	.Linfo_string3
184d1bcddb5SFangrui Song	.byte	1
185d1bcddb5SFangrui Song	.byte	1
186d1bcddb5SFangrui Song
187d1bcddb5SFangrui Song	.long	75
188d1bcddb5SFangrui Song
189d1bcddb5SFangrui Song	.byte	3
190d1bcddb5SFangrui Song	.long	.Ldebug_loc0
191d1bcddb5SFangrui Song	.long	.Linfo_string5
192d1bcddb5SFangrui Song	.byte	1
193d1bcddb5SFangrui Song	.byte	1
194d1bcddb5SFangrui Song	.long	82
195d1bcddb5SFangrui Song	.byte	0
196d1bcddb5SFangrui Song	.byte	4
197d1bcddb5SFangrui Song	.long	.Linfo_string4
198d1bcddb5SFangrui Song	.byte	5
199d1bcddb5SFangrui Song	.byte	4
200d1bcddb5SFangrui Song	.byte	5
201d1bcddb5SFangrui Song	.long	75
202d1bcddb5SFangrui Song	.byte	0
203d1bcddb5SFangrui Song	.section	.debug_ranges,"",%progbits
204d1bcddb5SFangrui Song	.section	.debug_macinfo,"",%progbits
205d1bcddb5SFangrui Song.Lcu_macro_begin0:
206d1bcddb5SFangrui Song	.byte	0
207d1bcddb5SFangrui Song	.section	.debug_pubnames,"",%progbits
208d1bcddb5SFangrui Song	.long	.LpubNames_end0-.LpubNames_begin0
209d1bcddb5SFangrui Song.LpubNames_begin0:
210d1bcddb5SFangrui Song	.short	2
211d1bcddb5SFangrui Song	.long	.Lcu_begin0
212d1bcddb5SFangrui Song	.long	88
213d1bcddb5SFangrui Song	.long	38
214d1bcddb5SFangrui Song	.asciz	"foo"
215d1bcddb5SFangrui Song	.long	0
216d1bcddb5SFangrui Song.LpubNames_end0:
217d1bcddb5SFangrui Song	.section	.debug_pubtypes,"",%progbits
218d1bcddb5SFangrui Song	.long	.LpubTypes_end0-.LpubTypes_begin0
219d1bcddb5SFangrui Song.LpubTypes_begin0:
220d1bcddb5SFangrui Song	.short	2
221d1bcddb5SFangrui Song	.long	.Lcu_begin0
222d1bcddb5SFangrui Song	.long	88
223d1bcddb5SFangrui Song	.long	75
224d1bcddb5SFangrui Song	.asciz	"int"
225d1bcddb5SFangrui Song	.long	0
226d1bcddb5SFangrui Song.LpubTypes_end0:
227d1bcddb5SFangrui Song
228d1bcddb5SFangrui Song	.ident	"clang version 6.0.0-1ubuntu2 (tags/RELEASE_600/final)"
229d1bcddb5SFangrui Song	.section	".note.GNU-stack","",%progbits
230d1bcddb5SFangrui Song	.eabi_attribute	30, 1
231d1bcddb5SFangrui Song	.section	.debug_line,"",%progbits
232d1bcddb5SFangrui Song.Lline_table_start0:
233