Compiler projects using llvm
; 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