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