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