1 ; RUN: llvm-pdbutil dump -types %p/Inputs/every-class.pdb \
4 ; CHECK: Types (TPI Stream)
5 ; CHECK: ============================================================
6 ; CHECK: Showing 157 records
7 ; CHECK: 0x1008 | LF_STRUCTURE [size = 124] `main::__l2::<unnamed-type-Anonymous>`
8 ; CHECK: unique name: `.?AU<unnamed-type-Anonymous>@?1??main@@YAHHPEAPEAD@Z@`aa6523bc`
9 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1007
10 ; CHECK: options: has unique name | scoped, sizeof 1
11 ; CHECK: 0x1009 | LF_STRUCTURE [size = 88] `main::__l2::Scoped`
12 ; CHECK: unique name: `.?AUScoped@?1??main@@YAHHPEAPEAD@Z@`aa6523bc`
13 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1007
14 ; CHECK: options: has unique name | scoped, sizeof 1
15 ; CHECK: 0x1054 | LF_STRUCTURE [size = 48] `Nested::F`
16 ; CHECK: unique name: `.?AUF@Nested@@`
17 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
18 ; CHECK: options: forward ref (-> 0x1057) | has unique name | is nested, sizeof 0
19 ; CHECK: 0x1056 | LF_STRUCTURE [size = 44] `Nested`
20 ; CHECK: unique name: `.?AUNested@@`
21 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1055
22 ; CHECK: options: contains nested class | has unique name, sizeof 1
23 ; CHECK: 0x1057 | LF_STRUCTURE [size = 48] `Nested::F`
24 ; CHECK: unique name: `.?AUF@Nested@@`
25 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1007
26 ; CHECK: options: has unique name | is nested, sizeof 1
27 ; CHECK: 0x1058 | LF_STRUCTURE [size = 52] `Constructor`
28 ; CHECK: unique name: `.?AUConstructor@@`
29 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
30 ; CHECK: options: forward ref (-> 0x105C) | has unique name, sizeof 0
31 ; CHECK: 0x105C | LF_STRUCTURE [size = 52] `Constructor`
32 ; CHECK: unique name: `.?AUConstructor@@`
33 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x105B
34 ; CHECK: options: has ctor / dtor | has unique name, sizeof 1
35 ; CHECK: 0x105D | LF_CLASS [size = 40] `Class`
36 ; CHECK: unique name: `.?AVClass@@`
37 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1007
38 ; CHECK: options: has unique name, sizeof 1
39 ; CHECK: 0x105E | LF_UNION [size = 32] `Union`
40 ; CHECK: unique name: `.?ATUnion@@`
41 ; CHECK: field list: 0x1007
42 ; CHECK: options: has unique name | sealed, sizeof 1
43 ; CHECK: 0x105F | LF_STRUCTURE [size = 48] `Operator`
44 ; CHECK: unique name: `.?AUOperator@@`
45 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
46 ; CHECK: options: forward ref (-> 0x1064) | has unique name, sizeof 0
47 ; CHECK: 0x1064 | LF_STRUCTURE [size = 48] `Operator`
48 ; CHECK: unique name: `.?AUOperator@@`
49 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1063
50 ; CHECK: options: has unique name | overloaded operator, sizeof 1
51 ; CHECK: 0x1066 | LF_ENUM [size = 36] `Enum`
52 ; CHECK: unique name: `.?AW4Enum@@`
53 ; CHECK: field list: 0x1065, underlying type: 0x0074 (int)
54 ; CHECK: options: has unique name
55 ; CHECK: 0x1067 | LF_STRUCTURE [size = 40] `Cast`
56 ; CHECK: unique name: `.?AUCast@@`
57 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
58 ; CHECK: options: forward ref (-> 0x106B) | has unique name, sizeof 0
59 ; CHECK: 0x106B | LF_STRUCTURE [size = 40] `Cast`
60 ; CHECK: unique name: `.?AUCast@@`
61 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x106A
62 ; CHECK: options: conversion operator | has unique name | overloaded operator, sizeof 1
63 ; CHECK: 0x106C | LF_STRUCTURE [size = 44] `Nothing`
64 ; CHECK: unique name: `.?AUNothing@@`
65 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1007
66 ; CHECK: options: has unique name, sizeof 1
67 ; CHECK: 0x106D | LF_STRUCTURE [size = 52] `Assignment`
68 ; CHECK: unique name: `.?AUAssignment@@`
69 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
70 ; CHECK: options: forward ref (-> 0x1073) | has unique name, sizeof 0
71 ; CHECK: 0x1073 | LF_STRUCTURE [size = 52] `Assignment`
72 ; CHECK: unique name: `.?AUAssignment@@`
73 ; CHECK: vtable: <no type>, base list: <no type>, field list: 0x1072
74 ; CHECK: options: has unique name | overloaded operator | overloaded operator=, sizeof 1
75 ; CHECK: 0x1074 | LF_STRUCTURE [size = 44] `Nothing`
76 ; CHECK: unique name: `.?AUNothing@@`
77 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
78 ; CHECK: options: forward ref (<- 0x106C) | has unique name, sizeof 0
79 ; CHECK: 0x1081 | LF_UNION [size = 32] `Union`
80 ; CHECK: unique name: `.?ATUnion@@`
81 ; CHECK: field list: <no type>
82 ; CHECK: options: forward ref (<- 0x105E) | has unique name, sizeof 0
83 ; CHECK: 0x1084 | LF_STRUCTURE [size = 124] `main::__l2::<unnamed-type-Anonymous>`
84 ; CHECK: unique name: `.?AU<unnamed-type-Anonymous>@?1??main@@YAHHPEAPEAD@Z@`aa6523bc`
85 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
86 ; CHECK: options: forward ref (<- 0x1008) | has unique name | scoped, sizeof 0
87 ; CHECK: 0x108E | LF_STRUCTURE [size = 44] `Nested`
88 ; CHECK: unique name: `.?AUNested@@`
89 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
90 ; CHECK: options: forward ref (<- 0x1056) | has unique name, sizeof 0
91 ; CHECK: 0x1095 | LF_STRUCTURE [size = 88] `main::__l2::Scoped`
92 ; CHECK: unique name: `.?AUScoped@?1??main@@YAHHPEAPEAD@Z@`aa6523bc`
93 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
94 ; CHECK: options: forward ref (<- 0x1009) | has unique name | scoped, sizeof 0
95 ; CHECK: 0x1098 | LF_CLASS [size = 40] `Class`
96 ; CHECK: unique name: `.?AVClass@@`
97 ; CHECK: vtable: <no type>, base list: <no type>, field list: <no type>
98 ; CHECK: options: forward ref (<- 0x105D) | has unique name, sizeof 0