[memprof] Remove an unused using directive (#117004)
[llvm-project.git] / lld / test / COFF / pdb-scopes.test
blobf0381f16e5c03c80a7e785d202f7ecb6f49c81de
1 Consider this program:
3 $ cat a.c
4 void g(int x) {}
5 void f(int x);
6 int main(int argc) {
7   if (argc) {
8     int x = 42;
9     f(x);
10   } else {
11     int y = 13;
12     f(y);
13   }
16 $ cat b.c
17 extern void g();
18 void f(int x) {
19   if (x) {
20     int y = x + 3;
21     g(y);
22   } else {
23     int w = x + 4;
24     g(w);
25   }
28 This program is interesting because there are two TUs, and each TU has nested
29 scopes. Make sure we get the right parent and end offsets.
31 RUN: yaml2obj %S/Inputs/pdb-scopes-a.yaml -o %t-a.obj
32 RUN: yaml2obj %S/Inputs/pdb-scopes-b.yaml -o %t-b.obj
33 RUN: lld-link %t-a.obj %t-b.obj -debug -entry:main -nodefaultlib -out:%t.exe -pdb:%t.pdb
34 RUN: llvm-pdbutil dump -symbols %t.pdb | FileCheck %s
36 CHECK-LABEL: Mod 0000 | `{{.*}}pdb-scopes.test.tmp-a.obj`:
37 CHECK: 104 | S_GPROC32 [size = 44] `g`
38 CHECK:       parent = 0, end = 196, addr = 0001:0000, code size = 5
39 CHECK:       debug start = 4, debug end = 4, flags = none
40 CHECK: 180 | S_REGREL32 [size = 16] `x`
41 CHECK: 196 | S_END [size = 4]
42 CHECK: 200 | S_GPROC32 [size = 44] `main`
43 CHECK:       parent = 0, end = 384, addr = 0001:0016, code size = 58
44 CHECK:       debug start = 8, debug end = 53, flags = none
45 CHECK: 276 | S_REGREL32 [size = 20] `argc`
46 CHECK: 296 | S_BLOCK32 [size = 24] ``
47 CHECK:       parent = 200, end = 336
48 CHECK:       code size = 17, addr = 0001:0031
49 CHECK: 320 | S_REGREL32 [size = 16] `x`
50 CHECK: 336 | S_END [size = 4]
51 CHECK: 340 | S_BLOCK32 [size = 24] ``
52 CHECK:       parent = 200, end = 380
53 CHECK:       code size = 17, addr = 0001:0050
54 CHECK: 364 | S_REGREL32 [size = 16] `y`
55 CHECK: 380 | S_END [size = 4]
56 CHECK: 384 | S_END [size = 4]
58 CHECK-LABEL: Mod 0001 | `{{.*}}pdb-scopes.test.tmp-b.obj`:
59 CHECK: 104 | S_GPROC32 [size = 44] `f`
60 CHECK:       parent = 0, end = 284, addr = 0001:0080, code size = 62
61 CHECK:       debug start = 8, debug end = 57, flags = none
62 CHECK: 180 | S_REGREL32 [size = 16] `x`
63 CHECK: 196 | S_BLOCK32 [size = 24] ``
64 CHECK:       parent = 104, end = 236
65 CHECK:       code size = 20, addr = 0001:0095
66 CHECK: 220 | S_REGREL32 [size = 16] `y`
67 CHECK: 236 | S_END [size = 4]
68 CHECK: 240 | S_BLOCK32 [size = 24] ``
69 CHECK:       parent = 104, end = 280
70 CHECK:       code size = 20, addr = 0001:0117
71 CHECK: 264 | S_REGREL32 [size = 16] `w`
72 CHECK: 280 | S_END [size = 4]
73 CHECK: 284 | S_END [size = 4]
75 CHECK-LABEL: Mod 0002 | `* Linker *`: