xref: /llvm-project/llvm/test/DebugInfo/PDB/Native/pdb-native-function-signatures.test (revision 6345e84dde9532483c109ab0df365f64b5d8852b)
1; Test that the native PDB reader can enumerate pointer types.  The output
2; being checked against is golden output generated by llvm-pdbutil without
3; the -native flag.  Then we check that we generate the same output.
4
5; RUN: llvm-pdbutil pretty -native -funcsigs %p/../Inputs/every-function.pdb \
6; RUN:     | FileCheck -check-prefix=PRETTY %s
7
8; RUN: llvm-pdbutil diadump -native -funcsigs %p/../Inputs/every-function.pdb \
9; RUN:     | FileCheck -check-prefix=DUMP %s
10
11
12; PRETTY:      void __cdecl (void*, unsigned int)
13; PRETTY-NEXT: void __cdecl (void*, unsigned __int64)
14; PRETTY-NEXT: int __cdecl ()
15; PRETTY-NEXT: int ()
16; PRETTY-NEXT: int __fastcall ()
17; PRETTY-NEXT: int __vectorcall ()
18; PRETTY-NEXT: int __cdecl (int)
19; PRETTY-NEXT: int __cdecl (int, char)
20; PRETTY-NEXT: void __cdecl (Struct)
21; PRETTY-NEXT: void (Struct::)()
22; PRETTY-NEXT: int (Struct::)()
23; PRETTY-NEXT: void (Struct::)()
24; PRETTY-NEXT: void (Struct::)()
25; PRETTY-NEXT: void (Struct::)()
26; PRETTY-NEXT: void (Struct::)()
27; PRETTY-NEXT: void __cdecl (const int)
28; PRETTY-NEXT: void __cdecl (Struct)
29; PRETTY-NEXT: void __cdecl (int*)
30; PRETTY-NEXT: void __cdecl (Struct*)
31; PRETTY-NEXT: void __cdecl (const int*)
32; PRETTY-NEXT: void __cdecl (Struct*)
33; PRETTY-NEXT: Struct __cdecl ()
34; PRETTY-NEXT: void (Derived::)(Derived*)
35; PRETTY-NEXT: void (Derived::)(Derived&)
36; PRETTY-NEXT: void (Derived::)()
37; PRETTY-NEXT: void (Derived::)()
38; PRETTY-NEXT: Derived& (Derived::)(Derived*)
39; PRETTY-NEXT: Derived& (Derived::)(Derived&)
40; PRETTY-NEXT: void (Derived::)()
41; PRETTY-NEXT: void* (Derived::)(unsigned int)
42; PRETTY-NEXT: void (__vc_attributes::event_sourceAttribute::)(__vc_attributes::event_sourceAttribute::type_e)
43; PRETTY-NEXT: void (__vc_attributes::event_sourceAttribute::)()
44; PRETTY-NEXT: void (__vc_attributes::helper_attributes::v1_alttypeAttribute::)(__vc_attributes::helper_attributes::v1_alttypeAttribute::type_e)
45; PRETTY-NEXT: void (__vc_attributes::helper_attributes::usageAttribute::)(unsigned int)
46; PRETTY-NEXT: void (__vc_attributes::threadingAttribute::)(__vc_attributes::threadingAttribute::threading_e)
47; PRETTY-NEXT: void (__vc_attributes::threadingAttribute::)()
48; PRETTY-NEXT: void (__vc_attributes::aggregatableAttribute::)(__vc_attributes::aggregatableAttribute::type_e)
49; PRETTY-NEXT: void (__vc_attributes::aggregatableAttribute::)()
50; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)(__vc_attributes::event_receiverAttribute::type_e, bool)
51; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)(__vc_attributes::event_receiverAttribute::type_e)
52; PRETTY-NEXT: void (__vc_attributes::event_receiverAttribute::)()
53; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)(__vc_attributes::moduleAttribute::type_e, const char*, const char*, const char*, int, bool, const char*, int, const char*, const char*, int, bool, bool, const char*, const char*)
54; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)(__vc_attributes::moduleAttribute::type_e)
55; PRETTY-NEXT: void (__vc_attributes::moduleAttribute::)()
56; PRETTY-NEXT: void (Base1::)()
57; PRETTY-NEXT: void (Base1::)(Base1&)
58; PRETTY-NEXT: void (Base1::)()
59; PRETTY-NEXT: Base1& (Base1::)(Base1&)
60; PRETTY-NEXT: void* (Base1::)(unsigned int)
61; PRETTY-NEXT: void (Base2::)(Base2*)
62; PRETTY-NEXT: void (Base2::)(Base2&)
63; PRETTY-NEXT: void (Base2::)()
64; PRETTY-NEXT: void (Base2::)()
65; PRETTY-NEXT: Base2& (Base2::)(Base2*)
66; PRETTY-NEXT: Base2& (Base2::)(Base2&)
67; PRETTY-NEXT: void (Base2::)()
68; PRETTY-NEXT: void* (Base2::)(unsigned int)
69; PRETTY-NEXT: void __cdecl ()
70
71; DUMP:      {
72; DUMP-NEXT:   symIndexId: 2
73; DUMP-NEXT:   symTag: FunctionSig
74; DUMP-NEXT:   callingConvention: __cdecl
75; DUMP-NEXT:   count: 2
76; DUMP-NEXT:   typeId: 3
77; DUMP-NEXT:   constructor: 0
78; DUMP-NEXT:   constType: 0
79; DUMP-NEXT:   isConstructorVirtualBase: 0
80; DUMP-NEXT:   isCxxReturnUdt: 0
81; DUMP-NEXT:   unalignedType: 0
82; DUMP-NEXT:   volatileType: 0
83; DUMP-NEXT: }
84; DUMP-NEXT: {
85; DUMP-NEXT:   symIndexId: 4
86; DUMP-NEXT:   symTag: FunctionSig
87; DUMP-NEXT:   callingConvention: __cdecl
88; DUMP-NEXT:   count: 2
89; DUMP-NEXT:   typeId: 3
90; DUMP-NEXT:   constructor: 0
91; DUMP-NEXT:   constType: 0
92; DUMP-NEXT:   isConstructorVirtualBase: 0
93; DUMP-NEXT:   isCxxReturnUdt: 0
94; DUMP-NEXT:   unalignedType: 0
95; DUMP-NEXT:   volatileType: 0
96; DUMP-NEXT: }
97; DUMP-NEXT: {
98; DUMP-NEXT:   symIndexId: 5
99; DUMP-NEXT:   symTag: FunctionSig
100; DUMP-NEXT:   callingConvention: __cdecl
101; DUMP-NEXT:   count: 0
102; DUMP-NEXT:   typeId: 6
103; DUMP-NEXT:   constructor: 0
104; DUMP-NEXT:   constType: 0
105; DUMP-NEXT:   isConstructorVirtualBase: 0
106; DUMP-NEXT:   isCxxReturnUdt: 0
107; DUMP-NEXT:   unalignedType: 0
108; DUMP-NEXT:   volatileType: 0
109; DUMP-NEXT: }
110; DUMP-NEXT: {
111; DUMP-NEXT:   symIndexId: 7
112; DUMP-NEXT:   symTag: FunctionSig
113; DUMP-NEXT:   callingConvention: __stdcall
114; DUMP-NEXT:   count: 0
115; DUMP-NEXT:   typeId: 6
116; DUMP-NEXT:   constructor: 0
117; DUMP-NEXT:   constType: 0
118; DUMP-NEXT:   isConstructorVirtualBase: 0
119; DUMP-NEXT:   isCxxReturnUdt: 0
120; DUMP-NEXT:   unalignedType: 0
121; DUMP-NEXT:   volatileType: 0
122; DUMP-NEXT: }
123; DUMP-NEXT: {
124; DUMP-NEXT:   symIndexId: 8
125; DUMP-NEXT:   symTag: FunctionSig
126; DUMP-NEXT:   callingConvention: __fastcall
127; DUMP-NEXT:   count: 0
128; DUMP-NEXT:   typeId: 6
129; DUMP-NEXT:   constructor: 0
130; DUMP-NEXT:   constType: 0
131; DUMP-NEXT:   isConstructorVirtualBase: 0
132; DUMP-NEXT:   isCxxReturnUdt: 0
133; DUMP-NEXT:   unalignedType: 0
134; DUMP-NEXT:   volatileType: 0
135; DUMP-NEXT: }
136; DUMP-NEXT: {
137; DUMP-NEXT:   symIndexId: 9
138; DUMP-NEXT:   symTag: FunctionSig
139; DUMP-NEXT:   callingConvention: __vectorcall
140; DUMP-NEXT:   count: 0
141; DUMP-NEXT:   typeId: 6
142; DUMP-NEXT:   constructor: 0
143; DUMP-NEXT:   constType: 0
144; DUMP-NEXT:   isConstructorVirtualBase: 0
145; DUMP-NEXT:   isCxxReturnUdt: 0
146; DUMP-NEXT:   unalignedType: 0
147; DUMP-NEXT:   volatileType: 0
148; DUMP-NEXT: }
149; DUMP-NEXT: {
150; DUMP-NEXT:   symIndexId: 10
151; DUMP-NEXT:   symTag: FunctionSig
152; DUMP-NEXT:   callingConvention: __cdecl
153; DUMP-NEXT:   count: 1
154; DUMP-NEXT:   typeId: 6
155; DUMP-NEXT:   constructor: 0
156; DUMP-NEXT:   constType: 0
157; DUMP-NEXT:   isConstructorVirtualBase: 0
158; DUMP-NEXT:   isCxxReturnUdt: 0
159; DUMP-NEXT:   unalignedType: 0
160; DUMP-NEXT:   volatileType: 0
161; DUMP-NEXT: }
162; DUMP-NEXT: {
163; DUMP-NEXT:   symIndexId: 11
164; DUMP-NEXT:   symTag: FunctionSig
165; DUMP-NEXT:   callingConvention: __cdecl
166; DUMP-NEXT:   count: 2
167; DUMP-NEXT:   typeId: 6
168; DUMP-NEXT:   constructor: 0
169; DUMP-NEXT:   constType: 0
170; DUMP-NEXT:   isConstructorVirtualBase: 0
171; DUMP-NEXT:   isCxxReturnUdt: 0
172; DUMP-NEXT:   unalignedType: 0
173; DUMP-NEXT:   volatileType: 0
174; DUMP-NEXT: }
175; DUMP-NEXT: {
176; DUMP-NEXT:   symIndexId: 12
177; DUMP-NEXT:   symTag: FunctionSig
178; DUMP-NEXT:   callingConvention: __cdecl
179; DUMP-NEXT:   count: 1
180; DUMP-NEXT:   typeId: 3
181; DUMP-NEXT:   constructor: 0
182; DUMP-NEXT:   constType: 0
183; DUMP-NEXT:   isConstructorVirtualBase: 0
184; DUMP-NEXT:   isCxxReturnUdt: 0
185; DUMP-NEXT:   unalignedType: 0
186; DUMP-NEXT:   volatileType: 0
187; DUMP-NEXT: }
188; DUMP-NEXT: {
189; DUMP-NEXT:   symIndexId: 13
190; DUMP-NEXT:   symTag: FunctionSig
191; DUMP-NEXT:   callingConvention: __thiscall
192; DUMP-NEXT:   count: 1
193; DUMP-NEXT:   typeId: 3
194; DUMP-NEXT:   thisAdjust: 0
195; DUMP-NEXT:   constructor: 1
196; DUMP-NEXT:   constType: 0
197; DUMP-NEXT:   isConstructorVirtualBase: 0
198; DUMP-NEXT:   isCxxReturnUdt: 0
199; DUMP-NEXT:   unalignedType: 0
200; DUMP-NEXT:   volatileType: 0
201; DUMP-NEXT: }
202; DUMP-NEXT: {
203; DUMP-NEXT:   symIndexId: 15
204; DUMP-NEXT:   symTag: FunctionSig
205; DUMP-NEXT:   callingConvention: __thiscall
206; DUMP-NEXT:   count: 1
207; DUMP-NEXT:   typeId: 6
208; DUMP-NEXT:   thisAdjust: 0
209; DUMP-NEXT:   constructor: 0
210; DUMP-NEXT:   constType: 0
211; DUMP-NEXT:   isConstructorVirtualBase: 0
212; DUMP-NEXT:   isCxxReturnUdt: 0
213; DUMP-NEXT:   unalignedType: 0
214; DUMP-NEXT:   volatileType: 0
215; DUMP-NEXT: }
216; DUMP-NEXT: {
217; DUMP-NEXT:   symIndexId: 16
218; DUMP-NEXT:   symTag: FunctionSig
219; DUMP-NEXT:   callingConvention: __thiscall
220; DUMP-NEXT:   count: 1
221; DUMP-NEXT:   typeId: 3
222; DUMP-NEXT:   thisAdjust: 0
223; DUMP-NEXT:   constructor: 0
224; DUMP-NEXT:   constType: 0
225; DUMP-NEXT:   isConstructorVirtualBase: 0
226; DUMP-NEXT:   isCxxReturnUdt: 0
227; DUMP-NEXT:   unalignedType: 0
228; DUMP-NEXT:   volatileType: 0
229; DUMP-NEXT: }
230; DUMP-NEXT: {
231; DUMP-NEXT:   symIndexId: 17
232; DUMP-NEXT:   symTag: FunctionSig
233; DUMP-NEXT:   callingConvention: __thiscall
234; DUMP-NEXT:   count: 1
235; DUMP-NEXT:   typeId: 3
236; DUMP-NEXT:   thisAdjust: 0
237; DUMP-NEXT:   constructor: 0
238; DUMP-NEXT:   constType: 0
239; DUMP-NEXT:   isConstructorVirtualBase: 0
240; DUMP-NEXT:   isCxxReturnUdt: 0
241; DUMP-NEXT:   unalignedType: 0
242; DUMP-NEXT:   volatileType: 0
243; DUMP-NEXT: }
244; DUMP-NEXT: {
245; DUMP-NEXT:   symIndexId: 18
246; DUMP-NEXT:   symTag: FunctionSig
247; DUMP-NEXT:   callingConvention: __thiscall
248; DUMP-NEXT:   count: 1
249; DUMP-NEXT:   typeId: 3
250; DUMP-NEXT:   thisAdjust: 0
251; DUMP-NEXT:   constructor: 0
252; DUMP-NEXT:   constType: 0
253; DUMP-NEXT:   isConstructorVirtualBase: 0
254; DUMP-NEXT:   isCxxReturnUdt: 0
255; DUMP-NEXT:   unalignedType: 0
256; DUMP-NEXT:   volatileType: 0
257; DUMP-NEXT: }
258; DUMP-NEXT: {
259; DUMP-NEXT:   symIndexId: 19
260; DUMP-NEXT:   symTag: FunctionSig
261; DUMP-NEXT:   callingConvention: __thiscall
262; DUMP-NEXT:   count: 1
263; DUMP-NEXT:   typeId: 3
264; DUMP-NEXT:   thisAdjust: 0
265; DUMP-NEXT:   constructor: 0
266; DUMP-NEXT:   constType: 0
267; DUMP-NEXT:   isConstructorVirtualBase: 0
268; DUMP-NEXT:   isCxxReturnUdt: 0
269; DUMP-NEXT:   unalignedType: 0
270; DUMP-NEXT:   volatileType: 0
271; DUMP-NEXT: }
272; DUMP-NEXT: {
273; DUMP-NEXT:   symIndexId: 20
274; DUMP-NEXT:   symTag: FunctionSig
275; DUMP-NEXT:   callingConvention: __cdecl
276; DUMP-NEXT:   count: 1
277; DUMP-NEXT:   typeId: 3
278; DUMP-NEXT:   constructor: 0
279; DUMP-NEXT:   constType: 0
280; DUMP-NEXT:   isConstructorVirtualBase: 0
281; DUMP-NEXT:   isCxxReturnUdt: 0
282; DUMP-NEXT:   unalignedType: 0
283; DUMP-NEXT:   volatileType: 0
284; DUMP-NEXT: }
285; DUMP-NEXT: {
286; DUMP-NEXT:   symIndexId: 21
287; DUMP-NEXT:   symTag: FunctionSig
288; DUMP-NEXT:   callingConvention: __cdecl
289; DUMP-NEXT:   count: 1
290; DUMP-NEXT:   typeId: 3
291; DUMP-NEXT:   constructor: 0
292; DUMP-NEXT:   constType: 0
293; DUMP-NEXT:   isConstructorVirtualBase: 0
294; DUMP-NEXT:   isCxxReturnUdt: 0
295; DUMP-NEXT:   unalignedType: 0
296; DUMP-NEXT:   volatileType: 0
297; DUMP-NEXT: }
298; DUMP-NEXT: {
299; DUMP-NEXT:   symIndexId: 22
300; DUMP-NEXT:   symTag: FunctionSig
301; DUMP-NEXT:   callingConvention: __cdecl
302; DUMP-NEXT:   count: 1
303; DUMP-NEXT:   typeId: 3
304; DUMP-NEXT:   constructor: 0
305; DUMP-NEXT:   constType: 0
306; DUMP-NEXT:   isConstructorVirtualBase: 0
307; DUMP-NEXT:   isCxxReturnUdt: 0
308; DUMP-NEXT:   unalignedType: 0
309; DUMP-NEXT:   volatileType: 0
310; DUMP-NEXT: }
311; DUMP-NEXT: {
312; DUMP-NEXT:   symIndexId: 23
313; DUMP-NEXT:   symTag: FunctionSig
314; DUMP-NEXT:   callingConvention: __cdecl
315; DUMP-NEXT:   count: 1
316; DUMP-NEXT:   typeId: 3
317; DUMP-NEXT:   constructor: 0
318; DUMP-NEXT:   constType: 0
319; DUMP-NEXT:   isConstructorVirtualBase: 0
320; DUMP-NEXT:   isCxxReturnUdt: 0
321; DUMP-NEXT:   unalignedType: 0
322; DUMP-NEXT:   volatileType: 0
323; DUMP-NEXT: }
324; DUMP-NEXT: {
325; DUMP-NEXT:   symIndexId: 24
326; DUMP-NEXT:   symTag: FunctionSig
327; DUMP-NEXT:   callingConvention: __cdecl
328; DUMP-NEXT:   count: 1
329; DUMP-NEXT:   typeId: 3
330; DUMP-NEXT:   constructor: 0
331; DUMP-NEXT:   constType: 0
332; DUMP-NEXT:   isConstructorVirtualBase: 0
333; DUMP-NEXT:   isCxxReturnUdt: 0
334; DUMP-NEXT:   unalignedType: 0
335; DUMP-NEXT:   volatileType: 0
336; DUMP-NEXT: }
337; DUMP-NEXT: {
338; DUMP-NEXT:   symIndexId: 25
339; DUMP-NEXT:   symTag: FunctionSig
340; DUMP-NEXT:   callingConvention: __cdecl
341; DUMP-NEXT:   count: 1
342; DUMP-NEXT:   typeId: 3
343; DUMP-NEXT:   constructor: 0
344; DUMP-NEXT:   constType: 0
345; DUMP-NEXT:   isConstructorVirtualBase: 0
346; DUMP-NEXT:   isCxxReturnUdt: 0
347; DUMP-NEXT:   unalignedType: 0
348; DUMP-NEXT:   volatileType: 0
349; DUMP-NEXT: }
350; DUMP-NEXT: {
351; DUMP-NEXT:   symIndexId: 26
352; DUMP-NEXT:   symTag: FunctionSig
353; DUMP-NEXT:   callingConvention: __cdecl
354; DUMP-NEXT:   count: 0
355; DUMP-NEXT:   typeId: 14
356; DUMP-NEXT:   constructor: 0
357; DUMP-NEXT:   constType: 0
358; DUMP-NEXT:   isConstructorVirtualBase: 0
359; DUMP-NEXT:   isCxxReturnUdt: 1
360; DUMP-NEXT:   unalignedType: 0
361; DUMP-NEXT:   volatileType: 0
362; DUMP-NEXT: }
363; DUMP-NEXT: {
364; DUMP-NEXT:   symIndexId: 27
365; DUMP-NEXT:   symTag: FunctionSig
366; DUMP-NEXT:   callingConvention: __thiscall
367; DUMP-NEXT:   count: 2
368; DUMP-NEXT:   typeId: 3
369; DUMP-NEXT:   thisAdjust: 0
370; DUMP-NEXT:   constructor: 1
371; DUMP-NEXT:   constType: 0
372; DUMP-NEXT:   isConstructorVirtualBase: 1
373; DUMP-NEXT:   isCxxReturnUdt: 0
374; DUMP-NEXT:   unalignedType: 0
375; DUMP-NEXT:   volatileType: 0
376; DUMP-NEXT: }
377; DUMP-NEXT: {
378; DUMP-NEXT:   symIndexId: 29
379; DUMP-NEXT:   symTag: FunctionSig
380; DUMP-NEXT:   callingConvention: __thiscall
381; DUMP-NEXT:   count: 2
382; DUMP-NEXT:   typeId: 3
383; DUMP-NEXT:   thisAdjust: 0
384; DUMP-NEXT:   constructor: 1
385; DUMP-NEXT:   constType: 0
386; DUMP-NEXT:   isConstructorVirtualBase: 1
387; DUMP-NEXT:   isCxxReturnUdt: 0
388; DUMP-NEXT:   unalignedType: 0
389; DUMP-NEXT:   volatileType: 0
390; DUMP-NEXT: }
391; DUMP-NEXT: {
392; DUMP-NEXT:   symIndexId: 30
393; DUMP-NEXT:   symTag: FunctionSig
394; DUMP-NEXT:   callingConvention: __thiscall
395; DUMP-NEXT:   count: 1
396; DUMP-NEXT:   typeId: 3
397; DUMP-NEXT:   thisAdjust: 0
398; DUMP-NEXT:   constructor: 1
399; DUMP-NEXT:   constType: 0
400; DUMP-NEXT:   isConstructorVirtualBase: 1
401; DUMP-NEXT:   isCxxReturnUdt: 0
402; DUMP-NEXT:   unalignedType: 0
403; DUMP-NEXT:   volatileType: 0
404; DUMP-NEXT: }
405; DUMP-NEXT: {
406; DUMP-NEXT:   symIndexId: 31
407; DUMP-NEXT:   symTag: FunctionSig
408; DUMP-NEXT:   callingConvention: __thiscall
409; DUMP-NEXT:   count: 1
410; DUMP-NEXT:   typeId: 3
411; DUMP-NEXT:   thisAdjust: 4
412; DUMP-NEXT:   constructor: 0
413; DUMP-NEXT:   constType: 0
414; DUMP-NEXT:   isConstructorVirtualBase: 0
415; DUMP-NEXT:   isCxxReturnUdt: 0
416; DUMP-NEXT:   unalignedType: 0
417; DUMP-NEXT:   volatileType: 0
418; DUMP-NEXT: }
419; DUMP-NEXT: {
420; DUMP-NEXT:   symIndexId: 32
421; DUMP-NEXT:   symTag: FunctionSig
422; DUMP-NEXT:   callingConvention: __thiscall
423; DUMP-NEXT:   count: 2
424; DUMP-NEXT:   typeId: 33
425; DUMP-NEXT:   thisAdjust: 0
426; DUMP-NEXT:   constructor: 0
427; DUMP-NEXT:   constType: 0
428; DUMP-NEXT:   isConstructorVirtualBase: 0
429; DUMP-NEXT:   isCxxReturnUdt: 0
430; DUMP-NEXT:   unalignedType: 0
431; DUMP-NEXT:   volatileType: 0
432; DUMP-NEXT: }
433; DUMP-NEXT: {
434; DUMP-NEXT:   symIndexId: 34
435; DUMP-NEXT:   symTag: FunctionSig
436; DUMP-NEXT:   callingConvention: __thiscall
437; DUMP-NEXT:   count: 2
438; DUMP-NEXT:   typeId: 33
439; DUMP-NEXT:   thisAdjust: 0
440; DUMP-NEXT:   constructor: 0
441; DUMP-NEXT:   constType: 0
442; DUMP-NEXT:   isConstructorVirtualBase: 0
443; DUMP-NEXT:   isCxxReturnUdt: 0
444; DUMP-NEXT:   unalignedType: 0
445; DUMP-NEXT:   volatileType: 0
446; DUMP-NEXT: }
447; DUMP-NEXT: {
448; DUMP-NEXT:   symIndexId: 35
449; DUMP-NEXT:   symTag: FunctionSig
450; DUMP-NEXT:   callingConvention: __thiscall
451; DUMP-NEXT:   count: 1
452; DUMP-NEXT:   typeId: 3
453; DUMP-NEXT:   thisAdjust: 0
454; DUMP-NEXT:   constructor: 0
455; DUMP-NEXT:   constType: 0
456; DUMP-NEXT:   isConstructorVirtualBase: 0
457; DUMP-NEXT:   isCxxReturnUdt: 0
458; DUMP-NEXT:   unalignedType: 0
459; DUMP-NEXT:   volatileType: 0
460; DUMP-NEXT: }
461; DUMP-NEXT: {
462; DUMP-NEXT:   symIndexId: 36
463; DUMP-NEXT:   symTag: FunctionSig
464; DUMP-NEXT:   callingConvention: __thiscall
465; DUMP-NEXT:   count: 2
466; DUMP-NEXT:   typeId: 37
467; DUMP-NEXT:   thisAdjust: 4
468; DUMP-NEXT:   constructor: 0
469; DUMP-NEXT:   constType: 0
470; DUMP-NEXT:   isConstructorVirtualBase: 0
471; DUMP-NEXT:   isCxxReturnUdt: 0
472; DUMP-NEXT:   unalignedType: 0
473; DUMP-NEXT:   volatileType: 0
474; DUMP-NEXT: }
475; DUMP-NEXT: {
476; DUMP-NEXT:   symIndexId: 38
477; DUMP-NEXT:   symTag: FunctionSig
478; DUMP-NEXT:   callingConvention: __thiscall
479; DUMP-NEXT:   count: 2
480; DUMP-NEXT:   typeId: 3
481; DUMP-NEXT:   thisAdjust: 0
482; DUMP-NEXT:   constructor: 1
483; DUMP-NEXT:   constType: 0
484; DUMP-NEXT:   isConstructorVirtualBase: 0
485; DUMP-NEXT:   isCxxReturnUdt: 0
486; DUMP-NEXT:   unalignedType: 0
487; DUMP-NEXT:   volatileType: 0
488; DUMP-NEXT: }
489; DUMP-NEXT: {
490; DUMP-NEXT:   symIndexId: 40
491; DUMP-NEXT:   symTag: FunctionSig
492; DUMP-NEXT:   callingConvention: __thiscall
493; DUMP-NEXT:   count: 1
494; DUMP-NEXT:   typeId: 3
495; DUMP-NEXT:   thisAdjust: 0
496; DUMP-NEXT:   constructor: 1
497; DUMP-NEXT:   constType: 0
498; DUMP-NEXT:   isConstructorVirtualBase: 0
499; DUMP-NEXT:   isCxxReturnUdt: 0
500; DUMP-NEXT:   unalignedType: 0
501; DUMP-NEXT:   volatileType: 0
502; DUMP-NEXT: }
503; DUMP-NEXT: {
504; DUMP-NEXT:   symIndexId: 41
505; DUMP-NEXT:   symTag: FunctionSig
506; DUMP-NEXT:   callingConvention: __thiscall
507; DUMP-NEXT:   count: 2
508; DUMP-NEXT:   typeId: 3
509; DUMP-NEXT:   thisAdjust: 0
510; DUMP-NEXT:   constructor: 1
511; DUMP-NEXT:   constType: 0
512; DUMP-NEXT:   isConstructorVirtualBase: 0
513; DUMP-NEXT:   isCxxReturnUdt: 0
514; DUMP-NEXT:   unalignedType: 0
515; DUMP-NEXT:   volatileType: 0
516; DUMP-NEXT: }
517; DUMP-NEXT: {
518; DUMP-NEXT:   symIndexId: 43
519; DUMP-NEXT:   symTag: FunctionSig
520; DUMP-NEXT:   callingConvention: __thiscall
521; DUMP-NEXT:   count: 2
522; DUMP-NEXT:   typeId: 3
523; DUMP-NEXT:   thisAdjust: 0
524; DUMP-NEXT:   constructor: 1
525; DUMP-NEXT:   constType: 0
526; DUMP-NEXT:   isConstructorVirtualBase: 0
527; DUMP-NEXT:   isCxxReturnUdt: 0
528; DUMP-NEXT:   unalignedType: 0
529; DUMP-NEXT:   volatileType: 0
530; DUMP-NEXT: }
531; DUMP-NEXT: {
532; DUMP-NEXT:   symIndexId: 45
533; DUMP-NEXT:   symTag: FunctionSig
534; DUMP-NEXT:   callingConvention: __thiscall
535; DUMP-NEXT:   count: 2
536; DUMP-NEXT:   typeId: 3
537; DUMP-NEXT:   thisAdjust: 0
538; DUMP-NEXT:   constructor: 1
539; DUMP-NEXT:   constType: 0
540; DUMP-NEXT:   isConstructorVirtualBase: 0
541; DUMP-NEXT:   isCxxReturnUdt: 0
542; DUMP-NEXT:   unalignedType: 0
543; DUMP-NEXT:   volatileType: 0
544; DUMP-NEXT: }
545; DUMP-NEXT: {
546; DUMP-NEXT:   symIndexId: 47
547; DUMP-NEXT:   symTag: FunctionSig
548; DUMP-NEXT:   callingConvention: __thiscall
549; DUMP-NEXT:   count: 1
550; DUMP-NEXT:   typeId: 3
551; DUMP-NEXT:   thisAdjust: 0
552; DUMP-NEXT:   constructor: 1
553; DUMP-NEXT:   constType: 0
554; DUMP-NEXT:   isConstructorVirtualBase: 0
555; DUMP-NEXT:   isCxxReturnUdt: 0
556; DUMP-NEXT:   unalignedType: 0
557; DUMP-NEXT:   volatileType: 0
558; DUMP-NEXT: }
559; DUMP-NEXT: {
560; DUMP-NEXT:   symIndexId: 48
561; DUMP-NEXT:   symTag: FunctionSig
562; DUMP-NEXT:   callingConvention: __thiscall
563; DUMP-NEXT:   count: 2
564; DUMP-NEXT:   typeId: 3
565; DUMP-NEXT:   thisAdjust: 0
566; DUMP-NEXT:   constructor: 1
567; DUMP-NEXT:   constType: 0
568; DUMP-NEXT:   isConstructorVirtualBase: 0
569; DUMP-NEXT:   isCxxReturnUdt: 0
570; DUMP-NEXT:   unalignedType: 0
571; DUMP-NEXT:   volatileType: 0
572; DUMP-NEXT: }
573; DUMP-NEXT: {
574; DUMP-NEXT:   symIndexId: 50
575; DUMP-NEXT:   symTag: FunctionSig
576; DUMP-NEXT:   callingConvention: __thiscall
577; DUMP-NEXT:   count: 1
578; DUMP-NEXT:   typeId: 3
579; DUMP-NEXT:   thisAdjust: 0
580; DUMP-NEXT:   constructor: 1
581; DUMP-NEXT:   constType: 0
582; DUMP-NEXT:   isConstructorVirtualBase: 0
583; DUMP-NEXT:   isCxxReturnUdt: 0
584; DUMP-NEXT:   unalignedType: 0
585; DUMP-NEXT:   volatileType: 0
586; DUMP-NEXT: }
587; DUMP-NEXT: {
588; DUMP-NEXT:   symIndexId: 51
589; DUMP-NEXT:   symTag: FunctionSig
590; DUMP-NEXT:   callingConvention: __thiscall
591; DUMP-NEXT:   count: 3
592; DUMP-NEXT:   typeId: 3
593; DUMP-NEXT:   thisAdjust: 0
594; DUMP-NEXT:   constructor: 1
595; DUMP-NEXT:   constType: 0
596; DUMP-NEXT:   isConstructorVirtualBase: 0
597; DUMP-NEXT:   isCxxReturnUdt: 0
598; DUMP-NEXT:   unalignedType: 0
599; DUMP-NEXT:   volatileType: 0
600; DUMP-NEXT: }
601; DUMP-NEXT: {
602; DUMP-NEXT:   symIndexId: 53
603; DUMP-NEXT:   symTag: FunctionSig
604; DUMP-NEXT:   callingConvention: __thiscall
605; DUMP-NEXT:   count: 2
606; DUMP-NEXT:   typeId: 3
607; DUMP-NEXT:   thisAdjust: 0
608; DUMP-NEXT:   constructor: 1
609; DUMP-NEXT:   constType: 0
610; DUMP-NEXT:   isConstructorVirtualBase: 0
611; DUMP-NEXT:   isCxxReturnUdt: 0
612; DUMP-NEXT:   unalignedType: 0
613; DUMP-NEXT:   volatileType: 0
614; DUMP-NEXT: }
615; DUMP-NEXT: {
616; DUMP-NEXT:   symIndexId: 54
617; DUMP-NEXT:   symTag: FunctionSig
618; DUMP-NEXT:   callingConvention: __thiscall
619; DUMP-NEXT:   count: 1
620; DUMP-NEXT:   typeId: 3
621; DUMP-NEXT:   thisAdjust: 0
622; DUMP-NEXT:   constructor: 1
623; DUMP-NEXT:   constType: 0
624; DUMP-NEXT:   isConstructorVirtualBase: 0
625; DUMP-NEXT:   isCxxReturnUdt: 0
626; DUMP-NEXT:   unalignedType: 0
627; DUMP-NEXT:   volatileType: 0
628; DUMP-NEXT: }
629; DUMP-NEXT: {
630; DUMP-NEXT:   symIndexId: 55
631; DUMP-NEXT:   symTag: FunctionSig
632; DUMP-NEXT:   callingConvention: __thiscall
633; DUMP-NEXT:   count: 16
634; DUMP-NEXT:   typeId: 3
635; DUMP-NEXT:   thisAdjust: 0
636; DUMP-NEXT:   constructor: 1
637; DUMP-NEXT:   constType: 0
638; DUMP-NEXT:   isConstructorVirtualBase: 0
639; DUMP-NEXT:   isCxxReturnUdt: 0
640; DUMP-NEXT:   unalignedType: 0
641; DUMP-NEXT:   volatileType: 0
642; DUMP-NEXT: }
643; DUMP-NEXT: {
644; DUMP-NEXT:   symIndexId: 57
645; DUMP-NEXT:   symTag: FunctionSig
646; DUMP-NEXT:   callingConvention: __thiscall
647; DUMP-NEXT:   count: 2
648; DUMP-NEXT:   typeId: 3
649; DUMP-NEXT:   thisAdjust: 0
650; DUMP-NEXT:   constructor: 1
651; DUMP-NEXT:   constType: 0
652; DUMP-NEXT:   isConstructorVirtualBase: 0
653; DUMP-NEXT:   isCxxReturnUdt: 0
654; DUMP-NEXT:   unalignedType: 0
655; DUMP-NEXT:   volatileType: 0
656; DUMP-NEXT: }
657; DUMP-NEXT: {
658; DUMP-NEXT:   symIndexId: 58
659; DUMP-NEXT:   symTag: FunctionSig
660; DUMP-NEXT:   callingConvention: __thiscall
661; DUMP-NEXT:   count: 1
662; DUMP-NEXT:   typeId: 3
663; DUMP-NEXT:   thisAdjust: 0
664; DUMP-NEXT:   constructor: 1
665; DUMP-NEXT:   constType: 0
666; DUMP-NEXT:   isConstructorVirtualBase: 0
667; DUMP-NEXT:   isCxxReturnUdt: 0
668; DUMP-NEXT:   unalignedType: 0
669; DUMP-NEXT:   volatileType: 0
670; DUMP-NEXT: }
671; DUMP-NEXT: {
672; DUMP-NEXT:   symIndexId: 59
673; DUMP-NEXT:   symTag: FunctionSig
674; DUMP-NEXT:   callingConvention: __thiscall
675; DUMP-NEXT:   count: 1
676; DUMP-NEXT:   typeId: 3
677; DUMP-NEXT:   thisAdjust: 0
678; DUMP-NEXT:   constructor: 0
679; DUMP-NEXT:   constType: 0
680; DUMP-NEXT:   isConstructorVirtualBase: 0
681; DUMP-NEXT:   isCxxReturnUdt: 0
682; DUMP-NEXT:   unalignedType: 0
683; DUMP-NEXT:   volatileType: 0
684; DUMP-NEXT: }
685; DUMP-NEXT: {
686; DUMP-NEXT:   symIndexId: 61
687; DUMP-NEXT:   symTag: FunctionSig
688; DUMP-NEXT:   callingConvention: __thiscall
689; DUMP-NEXT:   count: 2
690; DUMP-NEXT:   typeId: 3
691; DUMP-NEXT:   thisAdjust: 0
692; DUMP-NEXT:   constructor: 1
693; DUMP-NEXT:   constType: 0
694; DUMP-NEXT:   isConstructorVirtualBase: 0
695; DUMP-NEXT:   isCxxReturnUdt: 0
696; DUMP-NEXT:   unalignedType: 0
697; DUMP-NEXT:   volatileType: 0
698; DUMP-NEXT: }
699; DUMP-NEXT: {
700; DUMP-NEXT:   symIndexId: 62
701; DUMP-NEXT:   symTag: FunctionSig
702; DUMP-NEXT:   callingConvention: __thiscall
703; DUMP-NEXT:   count: 1
704; DUMP-NEXT:   typeId: 3
705; DUMP-NEXT:   thisAdjust: 0
706; DUMP-NEXT:   constructor: 1
707; DUMP-NEXT:   constType: 0
708; DUMP-NEXT:   isConstructorVirtualBase: 0
709; DUMP-NEXT:   isCxxReturnUdt: 0
710; DUMP-NEXT:   unalignedType: 0
711; DUMP-NEXT:   volatileType: 0
712; DUMP-NEXT: }
713; DUMP-NEXT: {
714; DUMP-NEXT:   symIndexId: 63
715; DUMP-NEXT:   symTag: FunctionSig
716; DUMP-NEXT:   callingConvention: __thiscall
717; DUMP-NEXT:   count: 2
718; DUMP-NEXT:   typeId: 64
719; DUMP-NEXT:   thisAdjust: 0
720; DUMP-NEXT:   constructor: 0
721; DUMP-NEXT:   constType: 0
722; DUMP-NEXT:   isConstructorVirtualBase: 0
723; DUMP-NEXT:   isCxxReturnUdt: 0
724; DUMP-NEXT:   unalignedType: 0
725; DUMP-NEXT:   volatileType: 0
726; DUMP-NEXT: }
727; DUMP-NEXT: {
728; DUMP-NEXT:   symIndexId: 65
729; DUMP-NEXT:   symTag: FunctionSig
730; DUMP-NEXT:   callingConvention: __thiscall
731; DUMP-NEXT:   count: 2
732; DUMP-NEXT:   typeId: 37
733; DUMP-NEXT:   thisAdjust: 0
734; DUMP-NEXT:   constructor: 0
735; DUMP-NEXT:   constType: 0
736; DUMP-NEXT:   isConstructorVirtualBase: 0
737; DUMP-NEXT:   isCxxReturnUdt: 0
738; DUMP-NEXT:   unalignedType: 0
739; DUMP-NEXT:   volatileType: 0
740; DUMP-NEXT: }
741; DUMP-NEXT: {
742; DUMP-NEXT:   symIndexId: 66
743; DUMP-NEXT:   symTag: FunctionSig
744; DUMP-NEXT:   callingConvention: __thiscall
745; DUMP-NEXT:   count: 2
746; DUMP-NEXT:   typeId: 3
747; DUMP-NEXT:   thisAdjust: 0
748; DUMP-NEXT:   constructor: 1
749; DUMP-NEXT:   constType: 0
750; DUMP-NEXT:   isConstructorVirtualBase: 1
751; DUMP-NEXT:   isCxxReturnUdt: 0
752; DUMP-NEXT:   unalignedType: 0
753; DUMP-NEXT:   volatileType: 0
754; DUMP-NEXT: }
755; DUMP-NEXT: {
756; DUMP-NEXT:   symIndexId: 68
757; DUMP-NEXT:   symTag: FunctionSig
758; DUMP-NEXT:   callingConvention: __thiscall
759; DUMP-NEXT:   count: 2
760; DUMP-NEXT:   typeId: 3
761; DUMP-NEXT:   thisAdjust: 0
762; DUMP-NEXT:   constructor: 1
763; DUMP-NEXT:   constType: 0
764; DUMP-NEXT:   isConstructorVirtualBase: 1
765; DUMP-NEXT:   isCxxReturnUdt: 0
766; DUMP-NEXT:   unalignedType: 0
767; DUMP-NEXT:   volatileType: 0
768; DUMP-NEXT: }
769; DUMP-NEXT: {
770; DUMP-NEXT:   symIndexId: 69
771; DUMP-NEXT:   symTag: FunctionSig
772; DUMP-NEXT:   callingConvention: __thiscall
773; DUMP-NEXT:   count: 1
774; DUMP-NEXT:   typeId: 3
775; DUMP-NEXT:   thisAdjust: 0
776; DUMP-NEXT:   constructor: 1
777; DUMP-NEXT:   constType: 0
778; DUMP-NEXT:   isConstructorVirtualBase: 1
779; DUMP-NEXT:   isCxxReturnUdt: 0
780; DUMP-NEXT:   unalignedType: 0
781; DUMP-NEXT:   volatileType: 0
782; DUMP-NEXT: }
783; DUMP-NEXT: {
784; DUMP-NEXT:   symIndexId: 70
785; DUMP-NEXT:   symTag: FunctionSig
786; DUMP-NEXT:   callingConvention: __thiscall
787; DUMP-NEXT:   count: 1
788; DUMP-NEXT:   typeId: 3
789; DUMP-NEXT:   thisAdjust: 4
790; DUMP-NEXT:   constructor: 0
791; DUMP-NEXT:   constType: 0
792; DUMP-NEXT:   isConstructorVirtualBase: 0
793; DUMP-NEXT:   isCxxReturnUdt: 0
794; DUMP-NEXT:   unalignedType: 0
795; DUMP-NEXT:   volatileType: 0
796; DUMP-NEXT: }
797; DUMP-NEXT: {
798; DUMP-NEXT:   symIndexId: 71
799; DUMP-NEXT:   symTag: FunctionSig
800; DUMP-NEXT:   callingConvention: __thiscall
801; DUMP-NEXT:   count: 2
802; DUMP-NEXT:   typeId: 72
803; DUMP-NEXT:   thisAdjust: 0
804; DUMP-NEXT:   constructor: 0
805; DUMP-NEXT:   constType: 0
806; DUMP-NEXT:   isConstructorVirtualBase: 0
807; DUMP-NEXT:   isCxxReturnUdt: 0
808; DUMP-NEXT:   unalignedType: 0
809; DUMP-NEXT:   volatileType: 0
810; DUMP-NEXT: }
811; DUMP-NEXT: {
812; DUMP-NEXT:   symIndexId: 73
813; DUMP-NEXT:   symTag: FunctionSig
814; DUMP-NEXT:   callingConvention: __thiscall
815; DUMP-NEXT:   count: 2
816; DUMP-NEXT:   typeId: 72
817; DUMP-NEXT:   thisAdjust: 0
818; DUMP-NEXT:   constructor: 0
819; DUMP-NEXT:   constType: 0
820; DUMP-NEXT:   isConstructorVirtualBase: 0
821; DUMP-NEXT:   isCxxReturnUdt: 0
822; DUMP-NEXT:   unalignedType: 0
823; DUMP-NEXT:   volatileType: 0
824; DUMP-NEXT: }
825; DUMP-NEXT: {
826; DUMP-NEXT:   symIndexId: 74
827; DUMP-NEXT:   symTag: FunctionSig
828; DUMP-NEXT:   callingConvention: __thiscall
829; DUMP-NEXT:   count: 1
830; DUMP-NEXT:   typeId: 3
831; DUMP-NEXT:   thisAdjust: 0
832; DUMP-NEXT:   constructor: 0
833; DUMP-NEXT:   constType: 0
834; DUMP-NEXT:   isConstructorVirtualBase: 0
835; DUMP-NEXT:   isCxxReturnUdt: 0
836; DUMP-NEXT:   unalignedType: 0
837; DUMP-NEXT:   volatileType: 0
838; DUMP-NEXT: }
839; DUMP-NEXT: {
840; DUMP-NEXT:   symIndexId: 75
841; DUMP-NEXT:   symTag: FunctionSig
842; DUMP-NEXT:   callingConvention: __thiscall
843; DUMP-NEXT:   count: 2
844; DUMP-NEXT:   typeId: 37
845; DUMP-NEXT:   thisAdjust: 4
846; DUMP-NEXT:   constructor: 0
847; DUMP-NEXT:   constType: 0
848; DUMP-NEXT:   isConstructorVirtualBase: 0
849; DUMP-NEXT:   isCxxReturnUdt: 0
850; DUMP-NEXT:   unalignedType: 0
851; DUMP-NEXT:   volatileType: 0
852; DUMP-NEXT: }
853; DUMP-NEXT: {
854; DUMP-NEXT:   symIndexId: 76
855; DUMP-NEXT:   symTag: FunctionSig
856; DUMP-NEXT:   callingConvention: __cdecl
857; DUMP-NEXT:   count: 0
858; DUMP-NEXT:   typeId: 3
859; DUMP-NEXT:   constructor: 0
860; DUMP-NEXT:   constType: 0
861; DUMP-NEXT:   isConstructorVirtualBase: 0
862; DUMP-NEXT:   isCxxReturnUdt: 0
863; DUMP-NEXT:   unalignedType: 0
864; DUMP-NEXT:   volatileType: 0
865; DUMP-NEXT: }
866