xref: /llvm-project/llvm/test/tools/llvm-dwarfutil/ELF/X86/odr-fwd-declaration.test (revision 4539b44148918c332ff966a2a955aca0ab93dde4)
1*4539b441SAlexey Lapshin## This test checks debug info for the case when one compilation unit
2*4539b441SAlexey Lapshin## contains a forward declaration of a type and another compilation unit
3*4539b441SAlexey Lapshin## contains a definition for that type. The result should contain
4*4539b441SAlexey Lapshin## the original definition and the declaration without modifications.
5*4539b441SAlexey Lapshin
6*4539b441SAlexey Lapshin# RUN: yaml2obj %s -o %t.o
7*4539b441SAlexey Lapshin# RUN: llvm-dwarfutil %t.o - | llvm-dwarfdump -a - | FileCheck %s
8*4539b441SAlexey Lapshin
9*4539b441SAlexey Lapshin## CU1:
10*4539b441SAlexey Lapshin##
11*4539b441SAlexey Lapshin## class class1;
12*4539b441SAlexey Lapshin## template<int> class class2;
13*4539b441SAlexey Lapshin##
14*4539b441SAlexey Lapshin## class1 *var1;
15*4539b441SAlexey Lapshin## class2<int> *var2;
16*4539b441SAlexey Lapshin##
17*4539b441SAlexey Lapshin## CU2:
18*4539b441SAlexey Lapshin##
19*4539b441SAlexey Lapshin## class class1 {
20*4539b441SAlexey Lapshin##   char member1;
21*4539b441SAlexey Lapshin##   float member2;
22*4539b441SAlexey Lapshin## };
23*4539b441SAlexey Lapshin##
24*4539b441SAlexey Lapshin## template<int> class class2 {
25*4539b441SAlexey Lapshin##   char member1;
26*4539b441SAlexey Lapshin## };
27*4539b441SAlexey Lapshin##
28*4539b441SAlexey Lapshin## class1 *var1;
29*4539b441SAlexey Lapshin## class2<int> *var2;
30*4539b441SAlexey Lapshin
31*4539b441SAlexey Lapshin# CHECK: file format elf64-x86-64
32*4539b441SAlexey Lapshin# CHECK: .debug_info contents:
33*4539b441SAlexey Lapshin
34*4539b441SAlexey Lapshin# CHECK: DW_TAG_compile_unit
35*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"CU1"
36*4539b441SAlexey Lapshin
37*4539b441SAlexey Lapshin# CHECK: 0x[[CU1_CLASS1:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class1"
38*4539b441SAlexey Lapshin# CHECK: DW_AT_declaration (true)
39*4539b441SAlexey Lapshin
40*4539b441SAlexey Lapshin# CHECK: 0x[[CU1_CLASS2:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class2"
41*4539b441SAlexey Lapshin# CHECK: DW_AT_declaration (true)
42*4539b441SAlexey Lapshin# CHECK: DW_TAG_template_type_parameter{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU1_INT:[0-9a-f]*]] "int"
43*4539b441SAlexey Lapshin
44*4539b441SAlexey Lapshin# CHECK: 0x[[CU1_INT]]: DW_TAG_base_type
45*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"int"
46*4539b441SAlexey Lapshin
47*4539b441SAlexey Lapshin# CHECK: 0x[[CU1_PTR_CLASS1:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU1_CLASS1]] "class1"
48*4539b441SAlexey Lapshin
49*4539b441SAlexey Lapshin# CHECK: 0x[[CU1_PTR_CLASS2:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU1_CLASS2]] "class2<int>"
50*4539b441SAlexey Lapshin
51*4539b441SAlexey Lapshin# CHECK: DW_TAG_variable
52*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"var1"
53*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU1_PTR_CLASS1]] "class1 *"
54*4539b441SAlexey Lapshin# CHECK: DW_TAG_variable
55*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"var2"
56*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU1_PTR_CLASS2]] "class2<int> *"
57*4539b441SAlexey Lapshin
58*4539b441SAlexey Lapshin# CHECK: DW_TAG_compile_unit
59*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"CU2"
60*4539b441SAlexey Lapshin
61*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_CLASS1:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class1"
62*4539b441SAlexey Lapshin# CHECK: DW_TAG_member
63*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU2_CHAR:[0-9a-f]*]] "char"
64*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"member1"
65*4539b441SAlexey Lapshin
66*4539b441SAlexey Lapshin# CHECK: DW_TAG_member
67*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU2_FLOAT:[0-9a-f]*]] "float"
68*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"member2"
69*4539b441SAlexey Lapshin
70*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_CLASS2:[0-9a-f]*]]: DW_TAG_class_type{{.*[[:space:]].*}}DW_AT_name{{.*}}"class2"
71*4539b441SAlexey Lapshin# CHECK: DW_TAG_template_type_parameter{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU2_INT:[0-9a-f]*]] "int"
72*4539b441SAlexey Lapshin# CHECK: DW_TAG_member
73*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU2_CHAR]] "char"
74*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"member1"
75*4539b441SAlexey Lapshin
76*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_INT]]: DW_TAG_base_type
77*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"int"
78*4539b441SAlexey Lapshin
79*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_CHAR]]: DW_TAG_base_type
80*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"char"
81*4539b441SAlexey Lapshin
82*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_FLOAT]]: DW_TAG_base_type
83*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"float"
84*4539b441SAlexey Lapshin
85*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_PTR_CLASS1:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU2_CLASS1]] "class1"
86*4539b441SAlexey Lapshin
87*4539b441SAlexey Lapshin# CHECK: 0x[[CU2_PTR_CLASS2:[0-9a-f]*]]: DW_TAG_pointer_type{{.*[[:space:]].*}}DW_AT_type{{.*}}0x00000000[[CU2_CLASS2]] "class2<int>"
88*4539b441SAlexey Lapshin
89*4539b441SAlexey Lapshin# CHECK: DW_TAG_variable
90*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"var1"
91*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU2_PTR_CLASS1]] "class1 *"
92*4539b441SAlexey Lapshin# CHECK: DW_TAG_variable
93*4539b441SAlexey Lapshin# CHECK: DW_AT_name{{.*}}"var2"
94*4539b441SAlexey Lapshin# CHECK: DW_AT_type{{.*}}0x00000000[[CU2_PTR_CLASS2]] "class2<int> *"
95*4539b441SAlexey Lapshin
96*4539b441SAlexey Lapshin--- !ELF
97*4539b441SAlexey LapshinFileHeader:
98*4539b441SAlexey Lapshin  Class:    ELFCLASS64
99*4539b441SAlexey Lapshin  Data:     ELFDATA2LSB
100*4539b441SAlexey Lapshin  Type:     ET_REL
101*4539b441SAlexey Lapshin  Machine:  EM_X86_64
102*4539b441SAlexey LapshinSections:
103*4539b441SAlexey Lapshin  - Name:            .text
104*4539b441SAlexey Lapshin    Type:            SHT_PROGBITS
105*4539b441SAlexey Lapshin    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
106*4539b441SAlexey Lapshin    Address:         0x1000
107*4539b441SAlexey Lapshin    Size:            0x1b
108*4539b441SAlexey Lapshin  - Name:            .text2
109*4539b441SAlexey Lapshin    Type:            SHT_PROGBITS
110*4539b441SAlexey Lapshin    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
111*4539b441SAlexey Lapshin    Address:         0x2000
112*4539b441SAlexey Lapshin    Size:            0x1b
113*4539b441SAlexey LapshinDWARF:
114*4539b441SAlexey Lapshin  debug_abbrev:
115*4539b441SAlexey Lapshin    - Table:
116*4539b441SAlexey Lapshin      - Tag:      DW_TAG_compile_unit
117*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
118*4539b441SAlexey Lapshin        Attributes:
119*4539b441SAlexey Lapshin          - Attribute: DW_AT_producer
120*4539b441SAlexey Lapshin            Form:      DW_FORM_string
121*4539b441SAlexey Lapshin          - Attribute: DW_AT_language
122*4539b441SAlexey Lapshin            Form:      DW_FORM_data2
123*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
124*4539b441SAlexey Lapshin            Form:      DW_FORM_string
125*4539b441SAlexey Lapshin          - Attribute: DW_AT_low_pc
126*4539b441SAlexey Lapshin            Form:      DW_FORM_addr
127*4539b441SAlexey Lapshin          - Attribute: DW_AT_high_pc
128*4539b441SAlexey Lapshin            Form:      DW_FORM_data8
129*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
130*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
131*4539b441SAlexey Lapshin        Attributes:
132*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
133*4539b441SAlexey Lapshin            Form:      DW_FORM_string
134*4539b441SAlexey Lapshin      - Tag:      DW_TAG_member
135*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
136*4539b441SAlexey Lapshin        Attributes:
137*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
138*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
139*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
140*4539b441SAlexey Lapshin            Form:      DW_FORM_string
141*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
142*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
143*4539b441SAlexey Lapshin        Attributes:
144*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
145*4539b441SAlexey Lapshin            Form:      DW_FORM_string
146*4539b441SAlexey Lapshin          - Attribute: DW_AT_declaration
147*4539b441SAlexey Lapshin            Form:      DW_FORM_flag_present
148*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
149*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
150*4539b441SAlexey Lapshin        Attributes:
151*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
152*4539b441SAlexey Lapshin            Form:      DW_FORM_string
153*4539b441SAlexey Lapshin          - Attribute: DW_AT_declaration
154*4539b441SAlexey Lapshin            Form:      DW_FORM_flag_present
155*4539b441SAlexey Lapshin      - Tag:      DW_TAG_template_type_parameter
156*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
157*4539b441SAlexey Lapshin        Attributes:
158*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
159*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
160*4539b441SAlexey Lapshin      - Tag:      DW_TAG_base_type
161*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
162*4539b441SAlexey Lapshin        Attributes:
163*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
164*4539b441SAlexey Lapshin            Form:      DW_FORM_string
165*4539b441SAlexey Lapshin      - Tag:      DW_TAG_pointer_type
166*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
167*4539b441SAlexey Lapshin        Attributes:
168*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
169*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
170*4539b441SAlexey Lapshin      - Tag:      DW_TAG_variable
171*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
172*4539b441SAlexey Lapshin        Attributes:
173*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
174*4539b441SAlexey Lapshin            Form:      DW_FORM_string
175*4539b441SAlexey Lapshin          - Attribute: DW_AT_const_value
176*4539b441SAlexey Lapshin            Form:      DW_FORM_data4
177*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
178*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
179*4539b441SAlexey Lapshin    - Table:
180*4539b441SAlexey Lapshin      - Tag:      DW_TAG_compile_unit
181*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
182*4539b441SAlexey Lapshin        Attributes:
183*4539b441SAlexey Lapshin          - Attribute: DW_AT_producer
184*4539b441SAlexey Lapshin            Form:      DW_FORM_string
185*4539b441SAlexey Lapshin          - Attribute: DW_AT_language
186*4539b441SAlexey Lapshin            Form:      DW_FORM_data2
187*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
188*4539b441SAlexey Lapshin            Form:      DW_FORM_string
189*4539b441SAlexey Lapshin          - Attribute: DW_AT_low_pc
190*4539b441SAlexey Lapshin            Form:      DW_FORM_addr
191*4539b441SAlexey Lapshin          - Attribute: DW_AT_high_pc
192*4539b441SAlexey Lapshin            Form:      DW_FORM_data8
193*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
194*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
195*4539b441SAlexey Lapshin        Attributes:
196*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
197*4539b441SAlexey Lapshin            Form:      DW_FORM_string
198*4539b441SAlexey Lapshin      - Tag:      DW_TAG_member
199*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
200*4539b441SAlexey Lapshin        Attributes:
201*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
202*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
203*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
204*4539b441SAlexey Lapshin            Form:      DW_FORM_string
205*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
206*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
207*4539b441SAlexey Lapshin        Attributes:
208*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
209*4539b441SAlexey Lapshin            Form:      DW_FORM_string
210*4539b441SAlexey Lapshin          - Attribute: DW_AT_declaration
211*4539b441SAlexey Lapshin            Form:      DW_FORM_flag_present
212*4539b441SAlexey Lapshin      - Tag:      DW_TAG_class_type
213*4539b441SAlexey Lapshin        Children: DW_CHILDREN_yes
214*4539b441SAlexey Lapshin        Attributes:
215*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
216*4539b441SAlexey Lapshin            Form:      DW_FORM_string
217*4539b441SAlexey Lapshin          - Attribute: DW_AT_declaration
218*4539b441SAlexey Lapshin            Form:      DW_FORM_flag_present
219*4539b441SAlexey Lapshin      - Tag:      DW_TAG_template_type_parameter
220*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
221*4539b441SAlexey Lapshin        Attributes:
222*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
223*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
224*4539b441SAlexey Lapshin      - Tag:      DW_TAG_base_type
225*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
226*4539b441SAlexey Lapshin        Attributes:
227*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
228*4539b441SAlexey Lapshin            Form:      DW_FORM_string
229*4539b441SAlexey Lapshin      - Tag:      DW_TAG_pointer_type
230*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
231*4539b441SAlexey Lapshin        Attributes:
232*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
233*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
234*4539b441SAlexey Lapshin      - Tag:      DW_TAG_variable
235*4539b441SAlexey Lapshin        Children: DW_CHILDREN_no
236*4539b441SAlexey Lapshin        Attributes:
237*4539b441SAlexey Lapshin          - Attribute: DW_AT_name
238*4539b441SAlexey Lapshin            Form:      DW_FORM_string
239*4539b441SAlexey Lapshin          - Attribute: DW_AT_const_value
240*4539b441SAlexey Lapshin            Form:      DW_FORM_data4
241*4539b441SAlexey Lapshin          - Attribute: DW_AT_type
242*4539b441SAlexey Lapshin            Form:      DW_FORM_ref_addr
243*4539b441SAlexey Lapshin  debug_info:
244*4539b441SAlexey Lapshin    - Version: 4
245*4539b441SAlexey Lapshin      Entries:
246*4539b441SAlexey Lapshin        - AbbrCode: 1
247*4539b441SAlexey Lapshin          Values:
248*4539b441SAlexey Lapshin            - CStr: by_hand
249*4539b441SAlexey Lapshin            - Value:  0x04
250*4539b441SAlexey Lapshin            - CStr: CU1
251*4539b441SAlexey Lapshin            - Value:  0x1000
252*4539b441SAlexey Lapshin            - Value:  0x1b
253*4539b441SAlexey Lapshin        - AbbrCode: 4
254*4539b441SAlexey Lapshin          Values:
255*4539b441SAlexey Lapshin            - CStr: class1
256*4539b441SAlexey Lapshin        - AbbrCode: 5
257*4539b441SAlexey Lapshin          Values:
258*4539b441SAlexey Lapshin            - CStr: class2
259*4539b441SAlexey Lapshin        - AbbrCode: 6
260*4539b441SAlexey Lapshin          Values:
261*4539b441SAlexey Lapshin            - Value:  0x00000040
262*4539b441SAlexey Lapshin        - AbbrCode: 0
263*4539b441SAlexey Lapshin        - AbbrCode: 7
264*4539b441SAlexey Lapshin          Values:
265*4539b441SAlexey Lapshin            - CStr: int
266*4539b441SAlexey Lapshin        - AbbrCode: 8
267*4539b441SAlexey Lapshin          Values:
268*4539b441SAlexey Lapshin            - Value:  0x0000002a
269*4539b441SAlexey Lapshin        - AbbrCode: 8
270*4539b441SAlexey Lapshin          Values:
271*4539b441SAlexey Lapshin            - Value:  0x00000032
272*4539b441SAlexey Lapshin        - AbbrCode: 9
273*4539b441SAlexey Lapshin          Values:
274*4539b441SAlexey Lapshin            - CStr: var1
275*4539b441SAlexey Lapshin            - Value:  0x00000000
276*4539b441SAlexey Lapshin            - Value:  0x00000045
277*4539b441SAlexey Lapshin        - AbbrCode: 9
278*4539b441SAlexey Lapshin          Values:
279*4539b441SAlexey Lapshin            - CStr: var2
280*4539b441SAlexey Lapshin            - Value:  0x00000000
281*4539b441SAlexey Lapshin            - Value:  0x0000004a
282*4539b441SAlexey Lapshin        - AbbrCode: 0
283*4539b441SAlexey Lapshin    - Version: 4
284*4539b441SAlexey Lapshin      Entries:
285*4539b441SAlexey Lapshin        - AbbrCode: 1
286*4539b441SAlexey Lapshin          Values:
287*4539b441SAlexey Lapshin            - CStr: by_hand
288*4539b441SAlexey Lapshin            - Value:  0x04
289*4539b441SAlexey Lapshin            - CStr: CU2
290*4539b441SAlexey Lapshin            - Value:  0x2000
291*4539b441SAlexey Lapshin            - Value:  0x1b
292*4539b441SAlexey Lapshin        - AbbrCode: 2
293*4539b441SAlexey Lapshin          Values:
294*4539b441SAlexey Lapshin            - CStr: class1
295*4539b441SAlexey Lapshin        - AbbrCode: 3
296*4539b441SAlexey Lapshin          Values:
297*4539b441SAlexey Lapshin            - Value:  0x000000d9
298*4539b441SAlexey Lapshin            - CStr: member1
299*4539b441SAlexey Lapshin        - AbbrCode: 3
300*4539b441SAlexey Lapshin          Values:
301*4539b441SAlexey Lapshin            - Value:  0x000000df
302*4539b441SAlexey Lapshin            - CStr: member2
303*4539b441SAlexey Lapshin        - AbbrCode: 0
304*4539b441SAlexey Lapshin        - AbbrCode: 2
305*4539b441SAlexey Lapshin          Values:
306*4539b441SAlexey Lapshin            - CStr: class2
307*4539b441SAlexey Lapshin        - AbbrCode: 6
308*4539b441SAlexey Lapshin          Values:
309*4539b441SAlexey Lapshin            - Value:  0x000000d4
310*4539b441SAlexey Lapshin        - AbbrCode: 3
311*4539b441SAlexey Lapshin          Values:
312*4539b441SAlexey Lapshin            - Value:  0x000000d9
313*4539b441SAlexey Lapshin            - CStr: member1
314*4539b441SAlexey Lapshin        - AbbrCode: 0
315*4539b441SAlexey Lapshin        - AbbrCode: 7
316*4539b441SAlexey Lapshin          Values:
317*4539b441SAlexey Lapshin            - CStr: int
318*4539b441SAlexey Lapshin        - AbbrCode: 7
319*4539b441SAlexey Lapshin          Values:
320*4539b441SAlexey Lapshin            - CStr: char
321*4539b441SAlexey Lapshin        - AbbrCode: 7
322*4539b441SAlexey Lapshin          Values:
323*4539b441SAlexey Lapshin            - CStr: float
324*4539b441SAlexey Lapshin        - AbbrCode: 8
325*4539b441SAlexey Lapshin          Values:
326*4539b441SAlexey Lapshin            - Value:  0x00000096
327*4539b441SAlexey Lapshin        - AbbrCode: 8
328*4539b441SAlexey Lapshin          Values:
329*4539b441SAlexey Lapshin            - Value:  0x000000b9
330*4539b441SAlexey Lapshin        - AbbrCode: 9
331*4539b441SAlexey Lapshin          Values:
332*4539b441SAlexey Lapshin            - CStr: var1
333*4539b441SAlexey Lapshin            - Value:  0x00000000
334*4539b441SAlexey Lapshin            - Value:  0x000000e6
335*4539b441SAlexey Lapshin        - AbbrCode: 9
336*4539b441SAlexey Lapshin          Values:
337*4539b441SAlexey Lapshin            - CStr: var2
338*4539b441SAlexey Lapshin            - Value:  0x00000000
339*4539b441SAlexey Lapshin            - Value:  0x000000eb
340*4539b441SAlexey Lapshin        - AbbrCode: 0
341*4539b441SAlexey Lapshin...
342