annotate lld/test/COFF/pdb-global-hashes.test @ 192:d7606dcf6fce

Added tag llvm10 for changeset 0572611fdcc8
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 14 Dec 2020 18:01:34 +0900
parents 1d019706d866
children 2e18cbf3894f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
150
anatofuz
parents:
diff changeset
1 RUN: yaml2obj %p/Inputs/pdb-hashes-1.yaml > %t.1.obj
anatofuz
parents:
diff changeset
2 RUN: yaml2obj %p/Inputs/pdb-hashes-2.yaml > %t.2.obj
anatofuz
parents:
diff changeset
3 RUN: yaml2obj %p/Inputs/pdb-hashes-2-missing.yaml > %t.2.missing.obj
anatofuz
parents:
diff changeset
4 RUN: lld-link /debug %t.1.obj %t.2.obj /entry:main /nodefaultlib /PDB:%t.nohash.pdb
anatofuz
parents:
diff changeset
5 RUN: lld-link /debug:ghash %t.1.obj %t.2.obj /entry:main /nodefaultlib /PDB:%t.hash.pdb
anatofuz
parents:
diff changeset
6 RUN: lld-link /debug:ghash %t.1.obj %t.2.missing.obj /entry:main /nodefaultlib /PDB:%t.mixed.pdb
anatofuz
parents:
diff changeset
7 RUN: llvm-pdbutil dump -types -ids -dont-resolve-forward-refs %t.nohash.pdb | FileCheck %s
anatofuz
parents:
diff changeset
8 RUN: llvm-pdbutil dump -types -ids -dont-resolve-forward-refs %t.hash.pdb | FileCheck %s
anatofuz
parents:
diff changeset
9 RUN: llvm-pdbutil dump -types -ids -dont-resolve-forward-refs %t.mixed.pdb | FileCheck %s
anatofuz
parents:
diff changeset
10
anatofuz
parents:
diff changeset
11 ; These object files were generated via the following inputs and commands:
anatofuz
parents:
diff changeset
12 ; ----------------------------------------------
anatofuz
parents:
diff changeset
13 ; // obj.h
anatofuz
parents:
diff changeset
14 ; namespace NS {
anatofuz
parents:
diff changeset
15 ; struct Foo {
anatofuz
parents:
diff changeset
16 ; explicit Foo(int x) : X(x) {}
anatofuz
parents:
diff changeset
17 ; int X;
anatofuz
parents:
diff changeset
18 ; };
anatofuz
parents:
diff changeset
19 ;
anatofuz
parents:
diff changeset
20 ; int func(const Foo &f);
anatofuz
parents:
diff changeset
21 ; }
anatofuz
parents:
diff changeset
22 ; ----------------------------------------------
anatofuz
parents:
diff changeset
23 ; // obj1.cpp
anatofuz
parents:
diff changeset
24 ; #include "obj.h"
anatofuz
parents:
diff changeset
25 ;
anatofuz
parents:
diff changeset
26 ; int main(int argc, char **argv) {
anatofuz
parents:
diff changeset
27 ; NS::Foo f(argc);
anatofuz
parents:
diff changeset
28 ; return NS::func(f);
anatofuz
parents:
diff changeset
29 ; }
anatofuz
parents:
diff changeset
30 ; ----------------------------------------------
anatofuz
parents:
diff changeset
31 ; // obj2.cpp
anatofuz
parents:
diff changeset
32 ; #include "obj.h"
anatofuz
parents:
diff changeset
33 ;
anatofuz
parents:
diff changeset
34 ; int NS::func(const Foo &f) {
anatofuz
parents:
diff changeset
35 ; return 2 * f.X;
anatofuz
parents:
diff changeset
36 ; }
anatofuz
parents:
diff changeset
37 ; ----------------------------------------------
anatofuz
parents:
diff changeset
38 ; $ clang-cl /Z7 /GS- obj1.cpp /c /o obj1.obj
anatofuz
parents:
diff changeset
39 ; $ clang-cl /Z7 /GS- obj2.cpp /c /o obj2.obj
anatofuz
parents:
diff changeset
40
anatofuz
parents:
diff changeset
41 CHECK: Types (TPI Stream)
anatofuz
parents:
diff changeset
42 CHECK-NEXT: ============================================================
anatofuz
parents:
diff changeset
43 CHECK-NEXT: Showing 13 records
anatofuz
parents:
diff changeset
44 CHECK-NEXT: 0x1000 | LF_POINTER [size = 12]
anatofuz
parents:
diff changeset
45 CHECK-NEXT: referent = 0x0470 (char*), mode = pointer, opts = None, kind = ptr32
anatofuz
parents:
diff changeset
46 CHECK-NEXT: 0x1001 | LF_ARGLIST [size = 16]
anatofuz
parents:
diff changeset
47 CHECK-NEXT: 0x0074 (int): `int`
anatofuz
parents:
diff changeset
48 CHECK-NEXT: 0x1000: `char**`
anatofuz
parents:
diff changeset
49 CHECK-NEXT: 0x1002 | LF_PROCEDURE [size = 16]
anatofuz
parents:
diff changeset
50 CHECK-NEXT: return type = 0x0074 (int), # args = 2, param list = 0x1001
anatofuz
parents:
diff changeset
51 CHECK-NEXT: calling conv = cdecl, options = None
anatofuz
parents:
diff changeset
52 CHECK-NEXT: 0x1003 | LF_STRUCTURE [size = 44] `NS::Foo`
anatofuz
parents:
diff changeset
53 CHECK-NEXT: unique name: `.?AUFoo@NS@@`
anatofuz
parents:
diff changeset
54 CHECK-NEXT: vtable: <no type>, base list: <no type>, field list: <no type>
anatofuz
parents:
diff changeset
55 CHECK-NEXT: options: forward ref | has unique name
anatofuz
parents:
diff changeset
56 CHECK-NEXT: 0x1004 | LF_POINTER [size = 12]
anatofuz
parents:
diff changeset
57 CHECK-NEXT: referent = 0x1003, mode = pointer, opts = None, kind = ptr32
anatofuz
parents:
diff changeset
58 CHECK-NEXT: 0x1005 | LF_ARGLIST [size = 12]
anatofuz
parents:
diff changeset
59 CHECK-NEXT: 0x0074 (int): `int`
anatofuz
parents:
diff changeset
60 CHECK-NEXT: 0x1006 | LF_MFUNCTION [size = 28]
anatofuz
parents:
diff changeset
61 CHECK-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1005
anatofuz
parents:
diff changeset
62 CHECK-NEXT: class type = 0x1003, this type = 0x1004, this adjust = 0
anatofuz
parents:
diff changeset
63 CHECK-NEXT: calling conv = thiscall, options = None
anatofuz
parents:
diff changeset
64 CHECK-NEXT: 0x1007 | LF_FIELDLIST [size = 28]
anatofuz
parents:
diff changeset
65 CHECK-NEXT: - LF_MEMBER [name = `X`, Type = 0x0074 (int), offset = 0, attrs = public]
anatofuz
parents:
diff changeset
66 CHECK-NEXT: - LF_ONEMETHOD [name = `Foo`]
anatofuz
parents:
diff changeset
67 CHECK-NEXT: type = 0x1006, vftable offset = -1, attrs = public
anatofuz
parents:
diff changeset
68 CHECK-NEXT: 0x1008 | LF_STRUCTURE [size = 44] `NS::Foo`
anatofuz
parents:
diff changeset
69 CHECK-NEXT: unique name: `.?AUFoo@NS@@`
anatofuz
parents:
diff changeset
70 CHECK-NEXT: vtable: <no type>, base list: <no type>, field list: 0x1007
anatofuz
parents:
diff changeset
71 CHECK-NEXT: options: has unique name
anatofuz
parents:
diff changeset
72 CHECK-NEXT: 0x1009 | LF_MODIFIER [size = 12]
anatofuz
parents:
diff changeset
73 CHECK-NEXT: referent = 0x1003, modifiers = const
anatofuz
parents:
diff changeset
74 CHECK-NEXT: 0x100A | LF_POINTER [size = 12]
anatofuz
parents:
diff changeset
75 CHECK-NEXT: referent = 0x1009, mode = ref, opts = None, kind = ptr32
anatofuz
parents:
diff changeset
76 CHECK-NEXT: 0x100B | LF_ARGLIST [size = 12]
anatofuz
parents:
diff changeset
77 CHECK-NEXT: 0x100A: `const NS::Foo&`
anatofuz
parents:
diff changeset
78 CHECK-NEXT: 0x100C | LF_PROCEDURE [size = 16]
anatofuz
parents:
diff changeset
79 CHECK-NEXT: return type = 0x0074 (int), # args = 1, param list = 0x100B
anatofuz
parents:
diff changeset
80 CHECK-NEXT: calling conv = cdecl, options = None
anatofuz
parents:
diff changeset
81 CHECK: Types (IPI Stream)
anatofuz
parents:
diff changeset
82 CHECK-NEXT: ============================================================
anatofuz
parents:
diff changeset
83 CHECK-NEXT: Showing 6 records
anatofuz
parents:
diff changeset
84 CHECK-NEXT: 0x1000 | LF_FUNC_ID [size = 20]
anatofuz
parents:
diff changeset
85 CHECK-NEXT: name = main, type = 0x1002, parent scope = <no type>
anatofuz
parents:
diff changeset
86 CHECK-NEXT: 0x1001 | LF_STRING_ID [size = {{.*}}] ID: <no type>, String: {{.*}}obj.h
anatofuz
parents:
diff changeset
87 CHECK-NEXT: 0x1002 | LF_UDT_SRC_LINE [size = 16]
anatofuz
parents:
diff changeset
88 CHECK-NEXT: udt = 0x1008, file = 4097, line = 2
anatofuz
parents:
diff changeset
89 CHECK-NEXT: 0x1003 | LF_MFUNC_ID [size = 16]
anatofuz
parents:
diff changeset
90 CHECK-NEXT: name = Foo, type = 0x1006, class type = 0x1003
anatofuz
parents:
diff changeset
91 CHECK-NEXT: 0x1004 | LF_STRING_ID [size = 12] ID: <no type>, String: NS
anatofuz
parents:
diff changeset
92 CHECK-NEXT: 0x1005 | LF_FUNC_ID [size = 20]
anatofuz
parents:
diff changeset
93 CHECK-NEXT: name = func, type = 0x100C, parent scope = 0x1004