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