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