1*5792797cSDaniel Bertalan# REQUIRES: aarch64 2*5792797cSDaniel Bertalan# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos %s -o %t.o 3*5792797cSDaniel Bertalan# RUN: not %lld -arch arm64 %t.o -o /dev/null 2>&1 | FileCheck %s 4*5792797cSDaniel Bertalan 5*5792797cSDaniel Bertalan# CHECK: undefined symbol: _undef 6*5792797cSDaniel Bertalan# CHECK-NEXT: >>> referenced by test.c:3 7*5792797cSDaniel Bertalan# CHECK-NEXT: >>> {{.*}}.o:(symbol _main+0x0) 8*5792797cSDaniel Bertalan# CHECK-NEXT: >>> referenced by test.c:2 9*5792797cSDaniel Bertalan# CHECK-NEXT >>> {{.*}}.o:(symbol _ptr+0x0) 10*5792797cSDaniel Bertalan 11*5792797cSDaniel Bertalan## This is the output of `clang -g2 -O2 -fdebug-compilation-dir=. -fno-ident` called on the following file, with the 12*5792797cSDaniel Bertalan## Apple DWARF tables removed: 13*5792797cSDaniel Bertalan## 14*5792797cSDaniel Bertalan## int undef(); 15*5792797cSDaniel Bertalan## int (*ptr)() = &undef; 16*5792797cSDaniel Bertalan## int main() { return undef(); }; 17*5792797cSDaniel Bertalan 18*5792797cSDaniel Bertalan 19*5792797cSDaniel Bertalan .section __TEXT,__text,regular,pure_instructions 20*5792797cSDaniel Bertalan .build_version macos, 12, 0 sdk_version 13, 0 21*5792797cSDaniel Bertalan .file 1 "." "test.c" 22*5792797cSDaniel Bertalan .globl _main ; -- Begin function main 23*5792797cSDaniel Bertalan .p2align 2 24*5792797cSDaniel Bertalan_main: ; @main 25*5792797cSDaniel BertalanLfunc_begin0: 26*5792797cSDaniel Bertalan .loc 1 3 0 ; test.c:3:0 27*5792797cSDaniel Bertalan .cfi_startproc 28*5792797cSDaniel Bertalan; %bb.0: 29*5792797cSDaniel Bertalan .loc 1 3 21 prologue_end ; test.c:3:21 30*5792797cSDaniel Bertalan b _undef 31*5792797cSDaniel BertalanLtmp0: 32*5792797cSDaniel BertalanLfunc_end0: 33*5792797cSDaniel Bertalan .cfi_endproc 34*5792797cSDaniel Bertalan ; -- End function 35*5792797cSDaniel Bertalan .section __DATA,__data 36*5792797cSDaniel Bertalan .globl _ptr ; @ptr 37*5792797cSDaniel Bertalan .p2align 3 38*5792797cSDaniel Bertalan_ptr: 39*5792797cSDaniel Bertalan .quad _undef 40*5792797cSDaniel Bertalan 41*5792797cSDaniel Bertalan .section __DWARF,__debug_abbrev,regular,debug 42*5792797cSDaniel BertalanLsection_abbrev: 43*5792797cSDaniel Bertalan .byte 1 ; Abbreviation Code 44*5792797cSDaniel Bertalan .byte 17 ; DW_TAG_compile_unit 45*5792797cSDaniel Bertalan .byte 1 ; DW_CHILDREN_yes 46*5792797cSDaniel Bertalan .byte 37 ; DW_AT_producer 47*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 48*5792797cSDaniel Bertalan .byte 19 ; DW_AT_language 49*5792797cSDaniel Bertalan .byte 5 ; DW_FORM_data2 50*5792797cSDaniel Bertalan .byte 3 ; DW_AT_name 51*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 52*5792797cSDaniel Bertalan .ascii "\202|" ; DW_AT_LLVM_sysroot 53*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 54*5792797cSDaniel Bertalan .ascii "\357\177" ; DW_AT_APPLE_sdk 55*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 56*5792797cSDaniel Bertalan .byte 16 ; DW_AT_stmt_list 57*5792797cSDaniel Bertalan .byte 23 ; DW_FORM_sec_offset 58*5792797cSDaniel Bertalan .byte 27 ; DW_AT_comp_dir 59*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 60*5792797cSDaniel Bertalan .ascii "\341\177" ; DW_AT_APPLE_optimized 61*5792797cSDaniel Bertalan .byte 25 ; DW_FORM_flag_present 62*5792797cSDaniel Bertalan .byte 17 ; DW_AT_low_pc 63*5792797cSDaniel Bertalan .byte 1 ; DW_FORM_addr 64*5792797cSDaniel Bertalan .byte 18 ; DW_AT_high_pc 65*5792797cSDaniel Bertalan .byte 6 ; DW_FORM_data4 66*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 67*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 68*5792797cSDaniel Bertalan .byte 2 ; Abbreviation Code 69*5792797cSDaniel Bertalan .byte 52 ; DW_TAG_variable 70*5792797cSDaniel Bertalan .byte 0 ; DW_CHILDREN_no 71*5792797cSDaniel Bertalan .byte 3 ; DW_AT_name 72*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 73*5792797cSDaniel Bertalan .byte 73 ; DW_AT_type 74*5792797cSDaniel Bertalan .byte 19 ; DW_FORM_ref4 75*5792797cSDaniel Bertalan .byte 63 ; DW_AT_external 76*5792797cSDaniel Bertalan .byte 25 ; DW_FORM_flag_present 77*5792797cSDaniel Bertalan .byte 58 ; DW_AT_decl_file 78*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 79*5792797cSDaniel Bertalan .byte 59 ; DW_AT_decl_line 80*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 81*5792797cSDaniel Bertalan .byte 2 ; DW_AT_location 82*5792797cSDaniel Bertalan .byte 24 ; DW_FORM_exprloc 83*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 84*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 85*5792797cSDaniel Bertalan .byte 3 ; Abbreviation Code 86*5792797cSDaniel Bertalan .byte 15 ; DW_TAG_pointer_type 87*5792797cSDaniel Bertalan .byte 0 ; DW_CHILDREN_no 88*5792797cSDaniel Bertalan .byte 73 ; DW_AT_type 89*5792797cSDaniel Bertalan .byte 19 ; DW_FORM_ref4 90*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 91*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 92*5792797cSDaniel Bertalan .byte 4 ; Abbreviation Code 93*5792797cSDaniel Bertalan .byte 21 ; DW_TAG_subroutine_type 94*5792797cSDaniel Bertalan .byte 1 ; DW_CHILDREN_yes 95*5792797cSDaniel Bertalan .byte 73 ; DW_AT_type 96*5792797cSDaniel Bertalan .byte 19 ; DW_FORM_ref4 97*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 98*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 99*5792797cSDaniel Bertalan .byte 5 ; Abbreviation Code 100*5792797cSDaniel Bertalan .byte 24 ; DW_TAG_unspecified_parameters 101*5792797cSDaniel Bertalan .byte 0 ; DW_CHILDREN_no 102*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 103*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 104*5792797cSDaniel Bertalan .byte 6 ; Abbreviation Code 105*5792797cSDaniel Bertalan .byte 36 ; DW_TAG_base_type 106*5792797cSDaniel Bertalan .byte 0 ; DW_CHILDREN_no 107*5792797cSDaniel Bertalan .byte 3 ; DW_AT_name 108*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 109*5792797cSDaniel Bertalan .byte 62 ; DW_AT_encoding 110*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 111*5792797cSDaniel Bertalan .byte 11 ; DW_AT_byte_size 112*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 113*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 114*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 115*5792797cSDaniel Bertalan .byte 7 ; Abbreviation Code 116*5792797cSDaniel Bertalan .byte 46 ; DW_TAG_subprogram 117*5792797cSDaniel Bertalan .byte 0 ; DW_CHILDREN_no 118*5792797cSDaniel Bertalan .byte 17 ; DW_AT_low_pc 119*5792797cSDaniel Bertalan .byte 1 ; DW_FORM_addr 120*5792797cSDaniel Bertalan .byte 18 ; DW_AT_high_pc 121*5792797cSDaniel Bertalan .byte 6 ; DW_FORM_data4 122*5792797cSDaniel Bertalan .ascii "\347\177" ; DW_AT_APPLE_omit_frame_ptr 123*5792797cSDaniel Bertalan .byte 25 ; DW_FORM_flag_present 124*5792797cSDaniel Bertalan .byte 64 ; DW_AT_frame_base 125*5792797cSDaniel Bertalan .byte 24 ; DW_FORM_exprloc 126*5792797cSDaniel Bertalan .byte 3 ; DW_AT_name 127*5792797cSDaniel Bertalan .byte 14 ; DW_FORM_strp 128*5792797cSDaniel Bertalan .byte 58 ; DW_AT_decl_file 129*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 130*5792797cSDaniel Bertalan .byte 59 ; DW_AT_decl_line 131*5792797cSDaniel Bertalan .byte 11 ; DW_FORM_data1 132*5792797cSDaniel Bertalan .byte 73 ; DW_AT_type 133*5792797cSDaniel Bertalan .byte 19 ; DW_FORM_ref4 134*5792797cSDaniel Bertalan .byte 63 ; DW_AT_external 135*5792797cSDaniel Bertalan .byte 25 ; DW_FORM_flag_present 136*5792797cSDaniel Bertalan .ascii "\341\177" ; DW_AT_APPLE_optimized 137*5792797cSDaniel Bertalan .byte 25 ; DW_FORM_flag_present 138*5792797cSDaniel Bertalan .byte 0 ; EOM(1) 139*5792797cSDaniel Bertalan .byte 0 ; EOM(2) 140*5792797cSDaniel Bertalan .byte 0 ; EOM(3) 141*5792797cSDaniel Bertalan .section __DWARF,__debug_info,regular,debug 142*5792797cSDaniel BertalanLsection_info: 143*5792797cSDaniel BertalanLcu_begin0: 144*5792797cSDaniel Bertalan.set Lset0, Ldebug_info_end0-Ldebug_info_start0 ; Length of Unit 145*5792797cSDaniel Bertalan .long Lset0 146*5792797cSDaniel BertalanLdebug_info_start0: 147*5792797cSDaniel Bertalan .short 4 ; DWARF version number 148*5792797cSDaniel Bertalan.set Lset1, Lsection_abbrev-Lsection_abbrev ; Offset Into Abbrev. Section 149*5792797cSDaniel Bertalan .long Lset1 150*5792797cSDaniel Bertalan .byte 8 ; Address Size (in bytes) 151*5792797cSDaniel Bertalan .byte 1 ; Abbrev [1] 0xb:0x69 DW_TAG_compile_unit 152*5792797cSDaniel Bertalan .long 0 ; DW_AT_producer 153*5792797cSDaniel Bertalan .short 12 ; DW_AT_language 154*5792797cSDaniel Bertalan .long 1 ; DW_AT_name 155*5792797cSDaniel Bertalan .long 8 ; DW_AT_LLVM_sysroot 156*5792797cSDaniel Bertalan .long 60 ; DW_AT_APPLE_sdk 157*5792797cSDaniel Bertalan.set Lset2, Lline_table_start0-Lsection_line ; DW_AT_stmt_list 158*5792797cSDaniel Bertalan .long Lset2 159*5792797cSDaniel Bertalan .long 71 ; DW_AT_comp_dir 160*5792797cSDaniel Bertalan ; DW_AT_APPLE_optimized 161*5792797cSDaniel Bertalan .quad Lfunc_begin0 ; DW_AT_low_pc 162*5792797cSDaniel Bertalan.set Lset3, Lfunc_end0-Lfunc_begin0 ; DW_AT_high_pc 163*5792797cSDaniel Bertalan .long Lset3 164*5792797cSDaniel Bertalan .byte 2 ; Abbrev [2] 0x32:0x15 DW_TAG_variable 165*5792797cSDaniel Bertalan .long 73 ; DW_AT_name 166*5792797cSDaniel Bertalan .long 71 ; DW_AT_type 167*5792797cSDaniel Bertalan ; DW_AT_external 168*5792797cSDaniel Bertalan .byte 1 ; DW_AT_decl_file 169*5792797cSDaniel Bertalan .byte 2 ; DW_AT_decl_line 170*5792797cSDaniel Bertalan .byte 9 ; DW_AT_location 171*5792797cSDaniel Bertalan .byte 3 172*5792797cSDaniel Bertalan .quad _ptr 173*5792797cSDaniel Bertalan .byte 3 ; Abbrev [3] 0x47:0x5 DW_TAG_pointer_type 174*5792797cSDaniel Bertalan .long 76 ; DW_AT_type 175*5792797cSDaniel Bertalan .byte 4 ; Abbrev [4] 0x4c:0x7 DW_TAG_subroutine_type 176*5792797cSDaniel Bertalan .long 83 ; DW_AT_type 177*5792797cSDaniel Bertalan .byte 5 ; Abbrev [5] 0x51:0x1 DW_TAG_unspecified_parameters 178*5792797cSDaniel Bertalan .byte 0 ; End Of Children Mark 179*5792797cSDaniel Bertalan .byte 6 ; Abbrev [6] 0x53:0x7 DW_TAG_base_type 180*5792797cSDaniel Bertalan .long 77 ; DW_AT_name 181*5792797cSDaniel Bertalan .byte 5 ; DW_AT_encoding 182*5792797cSDaniel Bertalan .byte 4 ; DW_AT_byte_size 183*5792797cSDaniel Bertalan .byte 7 ; Abbrev [7] 0x5a:0x19 DW_TAG_subprogram 184*5792797cSDaniel Bertalan .quad Lfunc_begin0 ; DW_AT_low_pc 185*5792797cSDaniel Bertalan.set Lset4, Lfunc_end0-Lfunc_begin0 ; DW_AT_high_pc 186*5792797cSDaniel Bertalan .long Lset4 187*5792797cSDaniel Bertalan ; DW_AT_APPLE_omit_frame_ptr 188*5792797cSDaniel Bertalan .byte 1 ; DW_AT_frame_base 189*5792797cSDaniel Bertalan .byte 111 190*5792797cSDaniel Bertalan .long 81 ; DW_AT_name 191*5792797cSDaniel Bertalan .byte 1 ; DW_AT_decl_file 192*5792797cSDaniel Bertalan .byte 3 ; DW_AT_decl_line 193*5792797cSDaniel Bertalan .long 83 ; DW_AT_type 194*5792797cSDaniel Bertalan ; DW_AT_external 195*5792797cSDaniel Bertalan ; DW_AT_APPLE_optimized 196*5792797cSDaniel Bertalan .byte 0 ; End Of Children Mark 197*5792797cSDaniel BertalanLdebug_info_end0: 198*5792797cSDaniel Bertalan .section __DWARF,__debug_str,regular,debug 199*5792797cSDaniel BertalanLinfo_string: 200*5792797cSDaniel Bertalan .byte 0 ; string offset=0 201*5792797cSDaniel Bertalan .asciz "test.c" ; string offset=1 202*5792797cSDaniel Bertalan .asciz "/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk" ; string offset=8 203*5792797cSDaniel Bertalan .asciz "MacOSX.sdk" ; string offset=60 204*5792797cSDaniel Bertalan .asciz "." ; string offset=71 205*5792797cSDaniel Bertalan .asciz "ptr" ; string offset=73 206*5792797cSDaniel Bertalan .asciz "int" ; string offset=77 207*5792797cSDaniel Bertalan .asciz "main" ; string offset=81 208*5792797cSDaniel Bertalan .section __DWARF,__debug_line,regular,debug 209*5792797cSDaniel BertalanLsection_line: 210*5792797cSDaniel BertalanLline_table_start0: 211