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