; RUN: llvm-pdbutil yaml2pdb -pdb=%t.1.pdb %p/Inputs/merge-ids-and-types-1.yaml ; RUN: llvm-pdbutil yaml2pdb -pdb=%t.2.pdb %p/Inputs/merge-ids-and-types-2.yaml ; RUN: llvm-pdbutil merge -pdb=%t.3.pdb %t.1.pdb %t.2.pdb ; RUN: llvm-pdbutil dump -types %t.3.pdb | FileCheck -check-prefix=TPI-TYPES %s ; RUN: llvm-pdbutil dump -ids %t.3.pdb | FileCheck -check-prefix=IPI-TYPES %s TPI-TYPES: Types (TPI Stream) TPI-TYPES-NEXT: ============================================================ TPI-TYPES-NEXT: Showing 9 records TPI-TYPES-NEXT: 0x1000 | LF_POINTER [size = 12] TPI-TYPES-NEXT: referent = 0x0470 (char*), mode = pointer, opts = None, kind = ptr32 TPI-TYPES-NEXT: 0x1001 | LF_FIELDLIST [size = 24] TPI-TYPES-NEXT: - LF_MEMBER [name = `FooMember`, Type = 0x0403 (void*), offset = 0, attrs = public] TPI-TYPES-NEXT: 0x1002 | LF_ARGLIST [size = 16] TPI-TYPES-NEXT: 0x0074 (int): `int` TPI-TYPES-NEXT: 0x1000: `char**` TPI-TYPES-NEXT: 0x1003 | LF_STRUCTURE [size = 36] `FooBar` TPI-TYPES-NEXT: unique name: `FooBar` TPI-TYPES-NEXT: vtable: <no type>, base list: <no type>, field list: 0x1001 TPI-TYPES-NEXT: options: has unique name TPI-TYPES-NEXT: 0x1004 | LF_POINTER [size = 12] TPI-TYPES-NEXT: referent = 0x1003, mode = pointer, opts = None, kind = ptr32 TPI-TYPES-NEXT: 0x1005 | LF_ARGLIST [size = 12] TPI-TYPES-NEXT: 0x0074 (int): `int` TPI-TYPES-NEXT: 0x1006 | LF_MFUNCTION [size = 28] TPI-TYPES-NEXT: return type = 0x0003 (void), # args = 1, param list = 0x1005 TPI-TYPES-NEXT: class type = 0x1003, this type = 0x1004, this adjust = 0 TPI-TYPES-NEXT: calling conv = thiscall, options = constructor TPI-TYPES-NEXT: 0x1007 | LF_PROCEDURE [size = 16] TPI-TYPES-NEXT: return type = 0x0074 (int), # args = 2, param list = 0x1002 TPI-TYPES-NEXT: calling conv = cdecl, options = None TPI-TYPES-NEXT: 0x1008 | LF_PROCEDURE [size = 16] TPI-TYPES-NEXT: return type = 0x0003 (void), # args = 2, param list = 0x1002 TPI-TYPES-NEXT: calling conv = cdecl, options = None IPI-TYPES: Types (IPI Stream) IPI-TYPES-NEXT: ============================================================ IPI-TYPES-NEXT: Showing 6 records IPI-TYPES-NEXT: 0x1000 | LF_FUNC_ID [size = 20] IPI-TYPES-NEXT: name = main, type = 0x1007, parent scope = <no type> IPI-TYPES-NEXT: 0x1001 | LF_MFUNC_ID [size = 24] IPI-TYPES-NEXT: name = FooMethod, type = 0x1006, class type = 0x1003 IPI-TYPES-NEXT: 0x1002 | LF_UDT_MOD_SRC_LINE [size = 20] IPI-TYPES-NEXT: udt = 0x1003, mod = 0, file = 0, line = 0 IPI-TYPES-NEXT: 0x1003 | LF_FUNC_ID [size = 20] IPI-TYPES-NEXT: name = main2, type = 0x1007, parent scope = <no type> IPI-TYPES-NEXT: 0x1004 | LF_FUNC_ID [size = 16] IPI-TYPES-NEXT: name = foo, type = 0x1008, parent scope = <no type> IPI-TYPES-NEXT: 0x1005 | LF_MFUNC_ID [size = 24] IPI-TYPES-NEXT: name = FooMethod2, type = 0x1006, class type = 0x1003