1 # RUN: yaml2obj %s -o=%t.obj
2 # RUN: llvm-readobj --codeview-merged-types %t.obj | FileCheck %s --check-prefix=MERGED
3 # RUN: llvm-readobj --codeview-merged-types --codeview-ghash %t.obj | FileCheck %s --check-prefix=MERGED
5 # MERGED: Format: COFF-x86-64
6 # MERGED-NEXT: Arch: x86_64
7 # MERGED-NEXT: AddressSize: 64bit
8 # MERGED-NEXT: MergedTypeStream [
9 # MERGED-NEXT: ArgList (0x1000) {
10 # MERGED-NEXT: TypeLeafKind: LF_ARGLIST (0x1201)
11 # MERGED-NEXT: NumArgs: 0
12 # MERGED-NEXT: Arguments [
15 # MERGED-NEXT: Modifier (0x1001) {
16 # MERGED-NEXT: TypeLeafKind: LF_MODIFIER (0x1001)
17 # MERGED-NEXT: ModifiedType: void (0x3)
18 # MERGED-NEXT: Modifiers [ (0x3)
19 # MERGED-NEXT: Const (0x1)
20 # MERGED-NEXT: Volatile (0x2)
23 # MERGED-NEXT: Procedure (0x1002) {
24 # MERGED-NEXT: TypeLeafKind: LF_PROCEDURE (0x1008)
25 # MERGED-NEXT: ReturnType: void (0x3)
26 # MERGED-NEXT: CallingConvention: NearC (0x0)
27 # MERGED-NEXT: FunctionOptions [ (0x0)
29 # MERGED-NEXT: NumParameters: 0
30 # MERGED-NEXT: ArgListType: () (0x1000)
32 # MERGED-NEXT: Pointer (0x1003) {
33 # MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
34 # MERGED-NEXT: PointeeType: const volatile void (0x1001)
35 # MERGED-NEXT: PtrType: Near64 (0xC)
36 # MERGED-NEXT: PtrMode: Pointer (0x0)
37 # MERGED-NEXT: IsFlat: 0
38 # MERGED-NEXT: IsConst: 1
39 # MERGED-NEXT: IsVolatile: 0
40 # MERGED-NEXT: IsUnaligned: 0
41 # MERGED-NEXT: IsRestrict: 0
42 # MERGED-NEXT: IsThisPtr&: 0
43 # MERGED-NEXT: IsThisPtr&&: 0
44 # MERGED-NEXT: SizeOf: 8
46 # MERGED-NEXT: Pointer (0x1004) {
47 # MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
48 # MERGED-NEXT: PointeeType: const volatile void* const (0x1003)
49 # MERGED-NEXT: PtrType: Near64 (0xC)
50 # MERGED-NEXT: PtrMode: Pointer (0x0)
51 # MERGED-NEXT: IsFlat: 0
52 # MERGED-NEXT: IsConst: 1
53 # MERGED-NEXT: IsVolatile: 0
54 # MERGED-NEXT: IsUnaligned: 0
55 # MERGED-NEXT: IsRestrict: 0
56 # MERGED-NEXT: IsThisPtr&: 0
57 # MERGED-NEXT: IsThisPtr&&: 0
58 # MERGED-NEXT: SizeOf: 8
60 # MERGED-NEXT: Pointer (0x1005) {
61 # MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
62 # MERGED-NEXT: PointeeType: const volatile void* const* const (0x1004)
63 # MERGED-NEXT: PtrType: Near64 (0xC)
64 # MERGED-NEXT: PtrMode: Pointer (0x0)
65 # MERGED-NEXT: IsFlat: 0
66 # MERGED-NEXT: IsConst: 1
67 # MERGED-NEXT: IsVolatile: 0
68 # MERGED-NEXT: IsUnaligned: 0
69 # MERGED-NEXT: IsRestrict: 0
70 # MERGED-NEXT: IsThisPtr&: 0
71 # MERGED-NEXT: IsThisPtr&&: 0
72 # MERGED-NEXT: SizeOf: 8
74 # MERGED-NEXT: Pointer (0x1006) {
75 # MERGED-NEXT: TypeLeafKind: LF_POINTER (0x1002)
76 # MERGED-NEXT: PointeeType: const volatile void* const* const* const (0x1005)
77 # MERGED-NEXT: PtrType: Near64 (0xC)
78 # MERGED-NEXT: PtrMode: Pointer (0x0)
79 # MERGED-NEXT: IsFlat: 0
80 # MERGED-NEXT: IsConst: 1
81 # MERGED-NEXT: IsVolatile: 0
82 # MERGED-NEXT: IsUnaligned: 0
83 # MERGED-NEXT: IsRestrict: 0
84 # MERGED-NEXT: IsThisPtr&: 0
85 # MERGED-NEXT: IsThisPtr&&: 0
86 # MERGED-NEXT: SizeOf: 8
89 # MERGED-NEXT: MergedIDStream [
94 Machine: IMAGE_FILE_MACHINE_AMD64
98 Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
126 Modifiers: [ None, Const, Volatile ]