91 lines · plain
1RUN: llc -filetype=obj %p/Inputs/debuginfo1.ll -o %t.debuginfo1.o2RUN: llc -filetype=obj %p/Inputs/debuginfo2.ll -o %t.debuginfo2.o3RUN: wasm-ld -o %t.wasm %t.debuginfo1.o %t.debuginfo2.o4RUN: llvm-dwarfdump %t.wasm | FileCheck %s5 6CHECK: file format WASM7 8CHECK: .debug_info contents:9CHECK: DW_TAG_compile_unit10CHECK-NEXT: DW_AT_producer ("clang version 7.0.0 (trunk {{.*}})")11CHECK-NEXT: DW_AT_language (DW_LANG_C99)12CHECK-NEXT: DW_AT_name ("hi.c")13 14CHECK: DW_TAG_subprogram15CHECK-NEXT: DW_AT_low_pc16CHECK-NEXT: DW_AT_high_pc17CHECK-NEXT: DW_AT_frame_base18CHECK-NEXT: DW_AT_name ("test")19CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c")20CHECK-NEXT: DW_AT_decl_line (3)21CHECK-NEXT: DW_AT_prototyped (true)22 23CHECK: DW_TAG_formal_parameter24CHECK-NEXT: DW_AT_location (DW_OP_WASM_location 0x0 0x0, DW_OP_stack_value)25CHECK-NEXT: DW_AT_name ("t")26CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c")27CHECK-NEXT: DW_AT_decl_line (3)28 29CHECK: DW_TAG_subprogram30CHECK-NEXT: DW_AT_low_pc31CHECK-NEXT: DW_AT_high_pc32CHECK-NEXT: DW_AT_frame_base33CHECK-NEXT: DW_AT_name ("_start")34CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c")35CHECK-NEXT: DW_AT_decl_line (7)36 37CHECK: DW_TAG_base_type38CHECK-NEXT: DW_AT_name ("int")39CHECK-NEXT: DW_AT_encoding (DW_ATE_signed)40CHECK-NEXT: DW_AT_byte_size (0x04)41 42CHECK: DW_TAG_compile_unit43CHECK-NEXT: DW_AT_producer ("clang version 7.0.0 (trunk {{.*}})")44CHECK-NEXT: DW_AT_language (DW_LANG_C99)45CHECK-NEXT: DW_AT_name ("hi_foo.c")46 47CHECK: DW_TAG_variable48CHECK-NEXT: DW_AT_name ("y")49CHECK-NEXT: DW_AT_type (0x000000ac "int[2]")50CHECK-NEXT: DW_AT_external (true)51CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c")52CHECK-NEXT: DW_AT_decl_line (1)53CHECK: DW_AT_location (DW_OP_addr 0x10000)54 55CHECK: DW_TAG_array_type56 57CHECK: DW_TAG_subrange_type58 59CHECK: DW_TAG_base_type60CHECK-NEXT: DW_AT_name ("int")61CHECK-NEXT: DW_AT_encoding (DW_ATE_signed)62CHECK-NEXT: DW_AT_byte_size (0x04)63 64CHECK: DW_TAG_base_type65CHECK-NEXT: DW_AT_name ("__ARRAY_SIZE_TYPE__")66CHECK-NEXT: DW_AT_byte_size (0x08)67CHECK-NEXT: DW_AT_encoding (DW_ATE_unsigned)68 69CHECK: DW_TAG_variable70CHECK-NEXT: DW_AT_name ("z")71CHECK-NEXT: DW_AT_type (0x000000ac "int[2]")72CHECK-NEXT: DW_AT_external (true)73CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c")74CHECK-NEXT: DW_AT_decl_line (8)75CHECK-NEXT: DW_AT_location (DW_OP_addr 0xffffffff)76 77CHECK: DW_TAG_subprogram78CHECK-NEXT: DW_AT_low_pc79CHECK-NEXT: DW_AT_high_pc80CHECK-NEXT: DW_AT_frame_base81CHECK-NEXT: DW_AT_name ("foo")82CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c")83CHECK-NEXT: DW_AT_decl_line (3)84 85CHECK: DW_TAG_formal_parameter86CHECK-NEXT: DW_AT_location (DW_OP_WASM_location 0x0 0x0, DW_OP_stack_value)87CHECK-NEXT: DW_AT_name ("p")88CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c")89CHECK-NEXT: DW_AT_decl_line (3)90 91