| ; RUN: llvm-readobj -codeview %S/Inputs/codeview-unsorted.obj | FileCheck %s |
| ; RUN: llvm-readobj -codeview-merged-types %S/Inputs/codeview-unsorted.obj | FileCheck %s --check-prefix=MERGED |
| |
| ; The input type stream has records that refer to later type indices in the same |
| ; stream: |
| |
| ; CHECK: Pointer (0x1000) |
| ; CHECK: Struct (0x1001) |
| ; CHECK: FieldList: {{.*}} (0x1002) |
| ; CHECK: FieldList (0x1002) |
| ; CHECK: Pointer (0x1003) |
| ; CHECK: Procedure (0x1004) |
| ; CHECK: ArgListType: {{.*}} (0x1005) |
| ; CHECK: ArgList (0x1005) |
| |
| ; MERGED: Pointer (0x1000) |
| ; MERGED: FieldList (0x1001) |
| ; MERGED: Struct (0x1002) |
| ; MERGED: FieldList: {{.*}} (0x1001) |
| ; MERGED: Pointer (0x1003) |
| ; MERGED: ArgList (0x1004) |
| ; MERGED: Procedure (0x1005) |
| ; MERGED: ArgListType: {{.*}} (0x1004) |
| |
| |
| ; To reproduce codeview-unsorted.obj: |
| ; $ cat codeview-unsorted.asm |
| ; .model flat, C |
| ; .code |
| ; PBYTE TYPEDEF PTR BYTE |
| ; foo_list STRUCT |
| ; next PBYTE ? |
| ; data dd ? |
| ; foo_list ENDS |
| ; public foo |
| ; foo proc dst:ptr foo_list |
| ; ret |
| ; foo endp |
| ; end |
| ; $ ml -c -Zi codeview-unsorted.asm |