1; RUN: llvm-readobj --codeview %S/Inputs/codeview-unsorted.obj | FileCheck %s 2; RUN: llvm-readobj --codeview-merged-types %S/Inputs/codeview-unsorted.obj | FileCheck %s --check-prefix=MERGED 3 4; The input type stream has records that refer to later type indices in the same 5; stream: 6 7; CHECK: Pointer (0x1000) 8; CHECK: Struct (0x1001) 9; CHECK: FieldList: {{.*}} (0x1002) 10; CHECK: FieldList (0x1002) 11; CHECK: Pointer (0x1003) 12; CHECK: Procedure (0x1004) 13; CHECK: ArgListType: {{.*}} (0x1005) 14; CHECK: ArgList (0x1005) 15 16; MERGED: Pointer (0x1000) 17; MERGED: FieldList (0x1001) 18; MERGED: Struct (0x1002) 19; MERGED: FieldList: {{.*}} (0x1001) 20; MERGED: Pointer (0x1003) 21; MERGED: ArgList (0x1004) 22; MERGED: Procedure (0x1005) 23; MERGED: ArgListType: {{.*}} (0x1004) 24 25 26; To reproduce codeview-unsorted.obj: 27; $ cat codeview-unsorted.asm 28; .model flat, C 29; .code 30; PBYTE TYPEDEF PTR BYTE 31; foo_list STRUCT 32; next PBYTE ? 33; data dd ? 34; foo_list ENDS 35; public foo 36; foo proc dst:ptr foo_list 37; ret 38; foo endp 39; end 40; $ ml -c -Zi codeview-unsorted.asm 41