xref: /llvm-project/llvm/test/tools/llvm-readobj/COFF/codeview-merging-ghash.test (revision dbf520f617440d62ca46f64cdc41159945911902)
1*dbf520f6SGeorgii Rymar# RUN: yaml2obj %s -o=%t.obj
2*dbf520f6SGeorgii Rymar# RUN: llvm-readobj --codeview-merged-types %t.obj | FileCheck %s --check-prefix=MERGED
3*dbf520f6SGeorgii Rymar# RUN: llvm-readobj --codeview-merged-types --codeview-ghash %t.obj | FileCheck %s --check-prefix=MERGED
4*dbf520f6SGeorgii Rymar
5*dbf520f6SGeorgii Rymar# MERGED: Format: COFF-x86-64
6*dbf520f6SGeorgii Rymar# MERGED-NEXT: Arch: x86_64
7*dbf520f6SGeorgii Rymar# MERGED-NEXT: AddressSize: 64bit
8*dbf520f6SGeorgii Rymar# MERGED-NEXT: MergedTypeStream [
9*dbf520f6SGeorgii Rymar# MERGED-NEXT:   ArgList (0x1000) {
10*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_ARGLIST (0x1201)
11*dbf520f6SGeorgii Rymar# MERGED-NEXT:     NumArgs: 0
12*dbf520f6SGeorgii Rymar# MERGED-NEXT:     Arguments [
13*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ]
14*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
15*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Modifier (0x1001) {
16*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_MODIFIER (0x1001)
17*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ModifiedType: void (0x3)
18*dbf520f6SGeorgii Rymar# MERGED-NEXT:     Modifiers [ (0x3)
19*dbf520f6SGeorgii Rymar# MERGED-NEXT:       Const (0x1)
20*dbf520f6SGeorgii Rymar# MERGED-NEXT:       Volatile (0x2)
21*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ]
22*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
23*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Procedure (0x1002) {
24*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_PROCEDURE (0x1008)
25*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ReturnType: void (0x3)
26*dbf520f6SGeorgii Rymar# MERGED-NEXT:     CallingConvention: NearC (0x0)
27*dbf520f6SGeorgii Rymar# MERGED-NEXT:     FunctionOptions [ (0x0)
28*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ]
29*dbf520f6SGeorgii Rymar# MERGED-NEXT:     NumParameters: 0
30*dbf520f6SGeorgii Rymar# MERGED-NEXT:     ArgListType: () (0x1000)
31*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
32*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Pointer (0x1003) {
33*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
34*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PointeeType: const volatile void (0x1001)
35*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrType: Near64 (0xC)
36*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrMode: Pointer (0x0)
37*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsFlat: 0
38*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsConst: 1
39*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsVolatile: 0
40*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsUnaligned: 0
41*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsRestrict: 0
42*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&: 0
43*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&&: 0
44*dbf520f6SGeorgii Rymar# MERGED-NEXT:     SizeOf: 8
45*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
46*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Pointer (0x1004) {
47*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
48*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PointeeType: const volatile void* const (0x1003)
49*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrType: Near64 (0xC)
50*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrMode: Pointer (0x0)
51*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsFlat: 0
52*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsConst: 1
53*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsVolatile: 0
54*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsUnaligned: 0
55*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsRestrict: 0
56*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&: 0
57*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&&: 0
58*dbf520f6SGeorgii Rymar# MERGED-NEXT:     SizeOf: 8
59*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
60*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Pointer (0x1005) {
61*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
62*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PointeeType: const volatile void* const* const (0x1004)
63*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrType: Near64 (0xC)
64*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrMode: Pointer (0x0)
65*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsFlat: 0
66*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsConst: 1
67*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsVolatile: 0
68*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsUnaligned: 0
69*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsRestrict: 0
70*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&: 0
71*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&&: 0
72*dbf520f6SGeorgii Rymar# MERGED-NEXT:     SizeOf: 8
73*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
74*dbf520f6SGeorgii Rymar# MERGED-NEXT:   Pointer (0x1006) {
75*dbf520f6SGeorgii Rymar# MERGED-NEXT:     TypeLeafKind: LF_POINTER (0x1002)
76*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PointeeType: const volatile void* const* const* const (0x1005)
77*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrType: Near64 (0xC)
78*dbf520f6SGeorgii Rymar# MERGED-NEXT:     PtrMode: Pointer (0x0)
79*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsFlat: 0
80*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsConst: 1
81*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsVolatile: 0
82*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsUnaligned: 0
83*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsRestrict: 0
84*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&: 0
85*dbf520f6SGeorgii Rymar# MERGED-NEXT:     IsThisPtr&&: 0
86*dbf520f6SGeorgii Rymar# MERGED-NEXT:     SizeOf: 8
87*dbf520f6SGeorgii Rymar# MERGED-NEXT:   }
88*dbf520f6SGeorgii Rymar# MERGED-NEXT: ]
89*dbf520f6SGeorgii Rymar# MERGED-NEXT: MergedIDStream [
90*dbf520f6SGeorgii Rymar# MERGED-NEXT: ]
91*dbf520f6SGeorgii Rymar
92*dbf520f6SGeorgii Rymar--- !COFF
93*dbf520f6SGeorgii Rymarheader:
94*dbf520f6SGeorgii Rymar  Machine:         IMAGE_FILE_MACHINE_AMD64
95*dbf520f6SGeorgii Rymar  Characteristics: [  ]
96*dbf520f6SGeorgii Rymarsections:
97*dbf520f6SGeorgii Rymar  - Name:            '.debug$T'
98*dbf520f6SGeorgii Rymar    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA, IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]
99*dbf520f6SGeorgii Rymar    Alignment:       1
100*dbf520f6SGeorgii Rymar    Types:
101*dbf520f6SGeorgii Rymar      - Kind:            LF_PROCEDURE
102*dbf520f6SGeorgii Rymar        Procedure:
103*dbf520f6SGeorgii Rymar          ReturnType:      3
104*dbf520f6SGeorgii Rymar          CallConv:        NearC
105*dbf520f6SGeorgii Rymar          Options:         [ None ]
106*dbf520f6SGeorgii Rymar          ParameterCount:  0
107*dbf520f6SGeorgii Rymar          ArgumentList:    4097
108*dbf520f6SGeorgii Rymar      - Kind:            LF_ARGLIST
109*dbf520f6SGeorgii Rymar        ArgList:
110*dbf520f6SGeorgii Rymar          ArgIndices:      [  ]
111*dbf520f6SGeorgii Rymar      - Kind:            LF_POINTER
112*dbf520f6SGeorgii Rymar        Pointer:
113*dbf520f6SGeorgii Rymar          ReferentType:    4099
114*dbf520f6SGeorgii Rymar          Attrs:           66572
115*dbf520f6SGeorgii Rymar      - Kind:            LF_POINTER
116*dbf520f6SGeorgii Rymar        Pointer:
117*dbf520f6SGeorgii Rymar          ReferentType:    4100
118*dbf520f6SGeorgii Rymar          Attrs:           66572
119*dbf520f6SGeorgii Rymar      - Kind:            LF_POINTER
120*dbf520f6SGeorgii Rymar        Pointer:
121*dbf520f6SGeorgii Rymar          ReferentType:    4101
122*dbf520f6SGeorgii Rymar          Attrs:           66572
123*dbf520f6SGeorgii Rymar      - Kind:            LF_MODIFIER
124*dbf520f6SGeorgii Rymar        Modifier:
125*dbf520f6SGeorgii Rymar          ModifiedType:    3
126*dbf520f6SGeorgii Rymar          Modifiers:       [ None, Const, Volatile ]
127*dbf520f6SGeorgii Rymar      - Kind:            LF_POINTER
128*dbf520f6SGeorgii Rymar        Pointer:
129*dbf520f6SGeorgii Rymar          ReferentType:    4098
130*dbf520f6SGeorgii Rymar          Attrs:           66572
131*dbf520f6SGeorgii Rymarsymbols:
132*dbf520f6SGeorgii Rymar...
133