1; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
2; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \
3; RUN:   FileCheck --check-prefixes=COMMON,BIT32 %s
4
5; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
6; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false < %s | \
7; RUN:   FileCheck --check-prefixes=COMMON,BIT64 %s
8
9; RUN: llc -verify-machineinstrs -mtriple powerpc-ibm-aix-xcoff -mcpu=pwr4 \
10; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \
11; RUN:   -filetype=obj -o %t.o < %s
12; RUN: llvm-readobj --symbols %t.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM32 %s
13
14; RUN: llc -verify-machineinstrs -mtriple powerpc64-ibm-aix-xcoff -mcpu=pwr4 \
15; RUN:   -mattr=-altivec -data-sections=false -xcoff-traceback-table=false \
16; RUN:   -filetype=obj -o %t64.o < %s
17; RUN: llvm-readobj --symbols %t64.o | FileCheck --check-prefixes=CHECKSYM,CHECKSYM64 %s
18
19@foo_ext_weak_p = global void (...)* bitcast (void ()* @foo_ext_weak_ref to void (...)*)
20@b_w = extern_weak global i32
21
22declare extern_weak void @foo_ext_weak_ref()
23
24define i32 @main() {
25entry:
26  %0 = load void (...)*, void (...)** @foo_ext_weak_p
27  %callee.knr.cast = bitcast void (...)* %0 to void ()*
28  call void %callee.knr.cast()
29  call void @foo_ext_weak(i32* @b_w)
30  ret i32 0
31}
32
33declare extern_weak void @foo_ext_weak(i32*)
34
35; COMMON:         .globl	main[DS]                # -- Begin function main
36; COMMON-NEXT:    .globl	.main
37; COMMON-NEXT:    .align	4
38; COMMON-NEXT:    .csect main[DS]
39; BIT32-NEXT:     .vbyte	4, .main                   # @main
40; BIT32-NEXT:     .vbyte	4, TOC[TC0]
41; BIT32-NEXT:     .vbyte	4, 0
42; BIT64-NEXT:     .vbyte	8, .main                   # @main
43; BIT64-NEXT:     .vbyte	8, TOC[TC0]
44; BIT64-NEXT:     .vbyte	8, 0
45; COMMON-NEXT:    .csect  .text[PR]
46; COMMON-NEXT:    .main:
47
48; COMMON:         .csect  .data[RW]
49; COMMON:         .globl  foo_ext_weak_p
50; BIT32-NEXT:     .align	2
51; BIT64-NEXT:     .align 	3
52; COMMON-NEXT: foo_ext_weak_p:
53; BIT32-NEXT: 	  .vbyte	4, foo_ext_weak_ref[DS]
54; BIT64-NEXT: 	  .vbyte	8, foo_ext_weak_ref[DS]
55; COMMON-NEXT:    .weak   b_w[UA]
56; COMMON-NEXT:    .weak   .foo_ext_weak_ref[PR]
57; COMMON-NEXT:    .weak   foo_ext_weak_ref[DS]
58; COMMON-NEXT:    .weak   .foo_ext_weak[PR]
59; COMMON-NEXT:    .weak   foo_ext_weak[DS]
60; COMMON-NEXT:    .toc
61; COMMON-NEXT: L..C0:
62; COMMON-NEXT:    .tc foo_ext_weak_p[TC],foo_ext_weak_p
63; COMMON-NEXT: L..C1:
64; COMMON-NEXT:    .tc b_w[TC],b_w[UA]
65
66; CHECKSYM:      Symbols [
67; CHECKSYM-NEXT:   Symbol {
68; CHECKSYM-NEXT:     Index: 0
69; CHECKSYM-NEXT:     Name: <stdin>
70; CHECKSYM-NEXT:     Value (SymbolTableIndex): 0x0
71; CHECKSYM-NEXT:     Section: N_DEBUG
72; CHECKSYM-NEXT:     Source Language ID: TB_C (0x0)
73; CHECKSYM-NEXT:     CPU Version ID: 0x0
74; CHECKSYM-NEXT:     StorageClass: C_FILE (0x67)
75; CHECKSYM-NEXT:     NumberOfAuxEntries: 0
76; CHECKSYM-NEXT:   }
77; CHECKSYM-NEXT:   Symbol {
78; CHECKSYM-NEXT:     Index: [[#Index:]]
79; CHECKSYM-NEXT:     Name: .foo_ext_weak
80; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
81; CHECKSYM-NEXT:     Section: N_UNDEF
82; CHECKSYM-NEXT:     Type: 0x0
83; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
84; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
85; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
86; CHECKSYM-NEXT:       Index: [[#Index+1]]
87; CHECKSYM-NEXT:       SectionLen: 0
88; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
89; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
90; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
91; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
92; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
93; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
94; CHECKSYM32-NEXT:     StabSectNum: 0x0
95; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
96; CHECKSYM-NEXT:     }
97; CHECKSYM-NEXT:   }
98; CHECKSYM-NEXT:   Symbol {
99; CHECKSYM-NEXT:     Index: [[#Index+2]]
100; CHECKSYM-NEXT:     Name: foo_ext_weak_ref
101; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
102; CHECKSYM-NEXT:     Section: N_UNDEF
103; CHECKSYM-NEXT:     Type: 0x0
104; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
105; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
106; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
107; CHECKSYM-NEXT:       Index: [[#Index+3]]
108; CHECKSYM-NEXT:       SectionLen: 0
109; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
110; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
111; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
112; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
113; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
114; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
115; CHECKSYM32-NEXT:     StabSectNum: 0x0
116; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
117; CHECKSYM-NEXT:     }
118; CHECKSYM-NEXT:   }
119; CHECKSYM-NEXT:   Symbol {
120; CHECKSYM-NEXT:     Index: [[#Index+4]]
121; CHECKSYM-NEXT:     Name: b_w
122; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
123; CHECKSYM-NEXT:     Section: N_UNDEF
124; CHECKSYM-NEXT:     Type: 0x0
125; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
126; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
127; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
128; CHECKSYM-NEXT:       Index: [[#Index+5]]
129; CHECKSYM-NEXT:       SectionLen: 0
130; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
131; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
132; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
133; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
134; CHECKSYM-NEXT:       StorageMappingClass: XMC_UA (0x4)
135; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
136; CHECKSYM32-NEXT:     StabSectNum: 0x0
137; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
138; CHECKSYM-NEXT:     }
139; CHECKSYM-NEXT:   }
140; CHECKSYM-NEXT:   Symbol {
141; CHECKSYM-NEXT:     Index: [[#Index+6]]
142; CHECKSYM-NEXT:     Name: .foo_ext_weak_ref
143; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
144; CHECKSYM-NEXT:     Section: N_UNDEF
145; CHECKSYM-NEXT:     Type: 0x0
146; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
147; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
148; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
149; CHECKSYM-NEXT:       Index: [[#Index+7]]
150; CHECKSYM-NEXT:       SectionLen: 0
151; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
152; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
153; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
154; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
155; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
156; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
157; CHECKSYM32-NEXT:     StabSectNum: 0x0
158; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
159; CHECKSYM-NEXT:     }
160; CHECKSYM-NEXT:   }
161; CHECKSYM-NEXT:   Symbol {
162; CHECKSYM-NEXT:     Index: [[#Index+8]]
163; CHECKSYM-NEXT:     Name: foo_ext_weak
164; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
165; CHECKSYM-NEXT:     Section: N_UNDEF
166; CHECKSYM-NEXT:     Type: 0x0
167; CHECKSYM-NEXT:     StorageClass: C_WEAKEXT (0x6F)
168; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
169; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
170; CHECKSYM-NEXT:       Index: [[#Index+9]]
171; CHECKSYM-NEXT:       SectionLen: 0
172; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
173; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
174; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
175; CHECKSYM-NEXT:       SymbolType: XTY_ER (0x0)
176; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
177; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
178; CHECKSYM32-NEXT:     StabSectNum: 0x0
179; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
180; CHECKSYM-NEXT:     }
181; CHECKSYM-NEXT:   }
182; CHECKSYM-NEXT:   Symbol {
183; CHECKSYM-NEXT:     Index: [[#Index+10]]
184; CHECKSYM-NEXT:     Name: .text
185; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
186; CHECKSYM-NEXT:     Section: .text
187; CHECKSYM-NEXT:     Type: 0x0
188; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
189; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
190; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
191; CHECKSYM-NEXT:       Index: [[#Index+11]]
192; CHECKSYM-NEXT:       SectionLen: 80
193; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
194; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
195; CHECKSYM-NEXT:       SymbolAlignmentLog2: 5
196; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
197; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
198; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
199; CHECKSYM32-NEXT:     StabSectNum: 0x0
200; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
201; CHECKSYM-NEXT:     }
202; CHECKSYM-NEXT:   }
203; CHECKSYM-NEXT:   Symbol {
204; CHECKSYM-NEXT:     Index: [[#Index+12]]
205; CHECKSYM-NEXT:     Name: .main
206; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x0
207; CHECKSYM-NEXT:     Section: .text
208; CHECKSYM-NEXT:     Type: 0x0
209; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
210; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
211; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
212; CHECKSYM-NEXT:       Index: [[#Index+13]]
213; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+10]]
214; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
215; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
216; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
217; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
218; CHECKSYM-NEXT:       StorageMappingClass: XMC_PR (0x0)
219; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
220; CHECKSYM32-NEXT:     StabSectNum: 0x0
221; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
222; CHECKSYM-NEXT:     }
223; CHECKSYM-NEXT:   }
224; CHECKSYM-NEXT:   Symbol {
225; CHECKSYM-NEXT:     Index: [[#Index+14]]
226; CHECKSYM-NEXT:     Name: .data
227; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50
228; CHECKSYM-NEXT:     Section: .data
229; CHECKSYM-NEXT:     Type: 0x0
230; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
231; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
232; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
233; CHECKSYM-NEXT:       Index: [[#Index+15]]
234; CHECKSYM32-NEXT:     SectionLen: 4
235; CHECKSYM64-NEXT:     SectionLen: 8
236; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
237; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
238; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
239; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
240; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
241; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
242; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
243; CHECKSYM32-NEXT:     StabSectNum: 0x0
244; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
245; CHECKSYM-NEXT:     }
246; CHECKSYM-NEXT:   }
247; CHECKSYM-NEXT:   Symbol {
248; CHECKSYM-NEXT:     Index: [[#Index+16]]
249; CHECKSYM-NEXT:     Name: foo_ext_weak_p
250; CHECKSYM-NEXT:     Value (RelocatableAddress): 0x50
251; CHECKSYM-NEXT:     Section: .data
252; CHECKSYM-NEXT:     Type: 0x0
253; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
254; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
255; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
256; CHECKSYM-NEXT:       Index: [[#Index+17]]
257; CHECKSYM-NEXT:       ContainingCsectSymbolIndex: [[#Index+14]]
258; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
259; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
260; CHECKSYM-NEXT:       SymbolAlignmentLog2: 0
261; CHECKSYM-NEXT:       SymbolType: XTY_LD (0x2)
262; CHECKSYM-NEXT:       StorageMappingClass: XMC_RW (0x5)
263; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
264; CHECKSYM32-NEXT:     StabSectNum: 0x0
265; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
266; CHECKSYM-NEXT:     }
267; CHECKSYM-NEXT:   }
268; CHECKSYM-NEXT:   Symbol {
269; CHECKSYM-NEXT:     Index: [[#Index+18]]
270; CHECKSYM-NEXT:     Name: main
271; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x54
272; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x58
273; CHECKSYM-NEXT:     Section: .data
274; CHECKSYM-NEXT:     Type: 0x0
275; CHECKSYM-NEXT:     StorageClass: C_EXT (0x2)
276; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
277; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
278; CHECKSYM-NEXT:       Index: [[#Index+19]]
279; CHECKSYM32-NEXT:     SectionLen: 12
280; CHECKSYM64-NEXT:     SectionLen: 24
281; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
282; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
283; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
284; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
285; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
286; CHECKSYM-NEXT:       StorageMappingClass: XMC_DS (0xA)
287; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
288; CHECKSYM32-NEXT:     StabSectNum: 0x0
289; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
290; CHECKSYM-NEXT:     }
291; CHECKSYM-NEXT:   }
292; CHECKSYM-NEXT:   Symbol {
293; CHECKSYM-NEXT:     Index: [[#Index+20]]
294; CHECKSYM-NEXT:     Name: TOC
295; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60
296; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70
297; CHECKSYM-NEXT:     Section: .data
298; CHECKSYM-NEXT:     Type: 0x0
299; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
300; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
301; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
302; CHECKSYM-NEXT:       Index: [[#Index+21]]
303; CHECKSYM-NEXT:       SectionLen: 0
304; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
305; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
306; CHECKSYM-NEXT:       SymbolAlignmentLog2: 2
307; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
308; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC0 (0xF)
309; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
310; CHECKSYM32-NEXT:     StabSectNum: 0x0
311; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
312; CHECKSYM-NEXT:     }
313; CHECKSYM-NEXT:   }
314; CHECKSYM-NEXT:   Symbol {
315; CHECKSYM-NEXT:     Index: [[#Index+22]]
316; CHECKSYM-NEXT:     Name: foo_ext_weak_p
317; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x60
318; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x70
319; CHECKSYM-NEXT:     Section: .data
320; CHECKSYM-NEXT:     Type: 0x0
321; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
322; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
323; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
324; CHECKSYM-NEXT:       Index: [[#Index+23]]
325; CHECKSYM32-NEXT:     SectionLen: 4
326; CHECKSYM64-NEXT:     SectionLen: 8
327; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
328; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
329; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
330; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
331; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
332; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
333; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
334; CHECKSYM32-NEXT:     StabSectNum: 0x0
335; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
336; CHECKSYM-NEXT:     }
337; CHECKSYM-NEXT:   }
338; CHECKSYM-NEXT:   Symbol {
339; CHECKSYM-NEXT:     Index: [[#Index+24]]
340; CHECKSYM-NEXT:     Name: b_w
341; CHECKSYM32-NEXT:   Value (RelocatableAddress): 0x64
342; CHECKSYM64-NEXT:   Value (RelocatableAddress): 0x78
343; CHECKSYM-NEXT:     Section: .data
344; CHECKSYM-NEXT:     Type: 0x0
345; CHECKSYM-NEXT:     StorageClass: C_HIDEXT (0x6B)
346; CHECKSYM-NEXT:     NumberOfAuxEntries: 1
347; CHECKSYM-NEXT:     CSECT Auxiliary Entry {
348; CHECKSYM-NEXT:       Index: [[#Index+25]]
349; CHECKSYM32-NEXT:     SectionLen: 4
350; CHECKSYM64-NEXT:     SectionLen: 8
351; CHECKSYM-NEXT:       ParameterHashIndex: 0x0
352; CHECKSYM-NEXT:       TypeChkSectNum: 0x0
353; CHECKSYM32-NEXT:     SymbolAlignmentLog2: 2
354; CHECKSYM64-NEXT:     SymbolAlignmentLog2: 3
355; CHECKSYM-NEXT:       SymbolType: XTY_SD (0x1)
356; CHECKSYM-NEXT:       StorageMappingClass: XMC_TC (0x3)
357; CHECKSYM32-NEXT:     StabInfoIndex: 0x0
358; CHECKSYM32-NEXT:     StabSectNum: 0x0
359; CHECKSYM64-NEXT:     Auxiliary Type: AUX_CSECT (0xFB)
360; CHECKSYM-NEXT:     }
361; CHECKSYM-NEXT:   }
362; CHECKSYM-NEXT: ]
363