1RUN: llc -filetype=obj %p/Inputs/debuginfo1.ll -o %t.debuginfo1.o 2RUN: llc -filetype=obj %p/Inputs/debuginfo2.ll -o %t.debuginfo2.o 3RUN: wasm-ld -o %t.wasm %t.debuginfo1.o %t.debuginfo2.o 4RUN: llvm-dwarfdump %t.wasm | FileCheck %s 5 6CHECK: file format WASM 7 8CHECK: .debug_info contents: 9CHECK: DW_TAG_compile_unit 10CHECK-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_subprogram 15CHECK-NEXT: DW_AT_low_pc 16CHECK-NEXT: DW_AT_high_pc 17CHECK-NEXT: DW_AT_name ("test") 18CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c") 19CHECK-NEXT: DW_AT_decl_line (3) 20CHECK-NEXT: DW_AT_prototyped (true) 21 22CHECK: DW_TAG_formal_parameter 23CHECK-NEXT: DW_AT_name ("t") 24CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c") 25CHECK-NEXT: DW_AT_decl_line (3) 26 27CHECK: DW_TAG_subprogram 28CHECK-NEXT: DW_AT_low_pc 29CHECK-NEXT: DW_AT_high_pc 30CHECK-NEXT: DW_AT_name ("_start") 31CHECK-NEXT: DW_AT_decl_file ("/Users/yury/llvmwasm{{(/|\\)}}hi.c") 32CHECK-NEXT: DW_AT_decl_line (7) 33 34CHECK: DW_TAG_base_type 35CHECK-NEXT: DW_AT_name ("int") 36CHECK-NEXT: DW_AT_encoding (DW_ATE_signed) 37CHECK-NEXT: DW_AT_byte_size (0x04) 38 39CHECK: DW_TAG_compile_unit 40CHECK-NEXT: DW_AT_producer ("clang version 7.0.0 (trunk {{.*}})") 41CHECK-NEXT: DW_AT_language (DW_LANG_C99) 42CHECK-NEXT: DW_AT_name ("hi_foo.c") 43 44CHECK: DW_TAG_variable 45CHECK-NEXT: DW_AT_name ("y") 46CHECK-NEXT: DW_AT_type (0x00000097 "int[2]") 47CHECK-NEXT: DW_AT_external (true) 48CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c") 49CHECK-NEXT: DW_AT_decl_line (1) 50CHECK: DW_AT_location (DW_OP_addr 0x400) 51 52CHECK: DW_TAG_array_type 53 54CHECK: DW_TAG_subrange_type 55 56CHECK: DW_TAG_base_type 57CHECK-NEXT: DW_AT_name ("int") 58CHECK-NEXT: DW_AT_encoding (DW_ATE_signed) 59CHECK-NEXT: DW_AT_byte_size (0x04) 60 61CHECK: DW_TAG_base_type 62CHECK-NEXT: DW_AT_name ("__ARRAY_SIZE_TYPE__") 63CHECK-NEXT: DW_AT_byte_size (0x08) 64CHECK-NEXT: DW_AT_encoding (DW_ATE_unsigned) 65 66CHECK: DW_TAG_variable 67CHECK-NEXT: DW_AT_name ("z") 68CHECK-NEXT: DW_AT_type (0x00000097 "int[2]") 69CHECK-NEXT: DW_AT_external (true) 70CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c") 71CHECK-NEXT: DW_AT_decl_line (8) 72CHECK-NEXT: DW_AT_location (DW_OP_addr 0x0) 73 74CHECK: DW_TAG_subprogram 75CHECK-NEXT: DW_AT_low_pc 76CHECK-NEXT: DW_AT_high_pc 77CHECK-NEXT: DW_AT_name ("foo") 78CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c") 79CHECK-NEXT: DW_AT_decl_line (3) 80 81CHECK: DW_TAG_formal_parameter 82CHECK-NEXT: DW_AT_name ("p") 83CHECK-NEXT: DW_AT_decl_file ("{{.*}}hi_foo.c") 84CHECK-NEXT: DW_AT_decl_line (3) 85 86