6 ./make_stack_0_test.sh invalid "$OP"
9 for OP in 'stloc.0' 'stloc.s 0' 'stfld int32 Class::fld' pop ret
11 ./make_stack_0_test.sh invalid "$OP"
14 for OP in add and 'box [mscorlib]System.Int32' 'brfalse branch_target' ceq cgt clt conv.i4 conv.r8 div dup 'ldfld int32 Class::fld' 'ldflda int32 Class::fld' mul not or rem shl shr sub xor
16 ./make_stack_0_pop_test.sh "$OP"
19 for OP in add and ceq cgt clt div dup mul or rem shl shr sub xor 'stfld int32 Class::fld'
21 ./make_stack_1_pop_test.sh "$OP" int32
24 # Table 2: Binary Numeric Operators
26 for OP in add div mul rem sub
28 if [ "$OP" == "div" ] || [ "$OP" == "rem" ]; then
34 ./make_bin_test.sh bin_num_op_32_${I} valid $OP int32 int32 "ldc.i4.1" "${INIT}"
35 ./make_bin_test.sh bin_num_op_33_${I} valid $OP int32 'native int' "ldc.i4.1" "${INIT}"
36 ./make_bin_test.sh bin_num_op_34_${I} valid $OP int64 int64 "ldc.i8 1" "${INIT}"
37 ./make_bin_test.sh bin_num_op_35_${I} valid $OP 'native int' int32 "ldc.i4.1" "${INIT}"
38 ./make_bin_test.sh bin_num_op_36_${I} valid $OP 'native int' 'native int' "ldc.i4.1" "${INIT}"
39 ./make_bin_test.sh bin_num_op_37_${I} valid $OP float64 float64 "ldc.r8 0" "${INIT}"
40 ./make_bin_test.sh bin_num_op_38_${I} valid $OP float32 float64 "ldc.r8 0" "${INIT}"
41 ./make_bin_test.sh bin_num_op_39_${I} valid $OP float64 float32 "ldc.r4 0" "${INIT}"
42 ./make_bin_test.sh bin_num_op_40_${I} valid $OP float32 float32 "ldc.r4 0" "${INIT}"
44 ./make_bin_test.sh bin_num_op_1_${I} unverifiable $OP int32 int64 "ldc.i8 1" "${INIT}"
45 ./make_bin_test.sh bin_num_op_2_${I} unverifiable $OP int32 float64 "ldc.r8 0" "${INIT}"
46 ./make_bin_test.sh bin_num_op_3_${I} unverifiable $OP int32 object "ldnull" "${INIT}"
48 ./make_bin_test.sh bin_num_op_4_${I} unverifiable $OP int64 int32 "ldc.i4.1" "${INIT}"
49 ./make_bin_test.sh bin_num_op_5_${I} unverifiable $OP int64 'native int' "ldc.i4.1" "${INIT}"
50 ./make_bin_test.sh bin_num_op_6_${I} unverifiable $OP int64 float64 "ldc.r8 0" "${INIT}"
51 ./make_bin_test.sh bin_num_op_7_${I} unverifiable $OP int64 'int64&' "ldnull" "${INIT}"
52 ./make_bin_test.sh bin_num_op_8_${I} unverifiable $OP int64 object "ldnull" "${INIT}"
54 ./make_bin_test.sh bin_num_op_9_${I} unverifiable $OP 'native int' int64 "ldc.i8 1" "${INIT}"
55 ./make_bin_test.sh bin_num_op_10_${I} unverifiable $OP 'native int' float64 "ldc.r8 0" "${INIT}"
56 ./make_bin_test.sh bin_num_op_11_${I} unverifiable $OP 'native int' object "ldnull" "${INIT}"
58 ./make_bin_test.sh bin_num_op_12_${I} unverifiable $OP float64 int32 "ldc.i4.1" "${INIT}"
59 ./make_bin_test.sh bin_num_op_13_${I} unverifiable $OP float64 int64 "ldc.i8 1" "${INIT}"
60 ./make_bin_test.sh bin_num_op_14_${I} unverifiable $OP float64 'native int' "ldc.i4.1" "${INIT}"
61 ./make_bin_test.sh bin_num_op_15_${I} unverifiable $OP float64 'float64&' "ldnull" "${INIT}"
62 ./make_bin_test.sh bin_num_op_16_${I} unverifiable $OP float64 object "ldnull" "${INIT}"
64 ./make_bin_test.sh bin_num_op_17_${I} unverifiable $OP 'int64&' int64 "ldc.i8 1" "${INIT}"
65 ./make_bin_test.sh bin_num_op_18_${I} unverifiable $OP 'float64&' float64 "ldc.r8 0" "${INIT}"
66 ./make_bin_test.sh bin_num_op_19_${I} unverifiable $OP 'object&' object "ldnull" "${INIT}"
68 ./make_bin_test.sh bin_num_op_20_${I} unverifiable $OP object int32 "ldc.i4.1" "${INIT}"
69 ./make_bin_test.sh bin_num_op_21_${I} unverifiable $OP object int64 "ldc.i8 1" "${INIT}"
70 ./make_bin_test.sh bin_num_op_22_${I} unverifiable $OP object 'native int' "ldc.i4.1" "${INIT}"
71 ./make_bin_test.sh bin_num_op_23_${I} unverifiable $OP object float64 "ldc.r8 0" "${INIT}"
72 ./make_bin_test.sh bin_num_op_24_${I} unverifiable $OP object 'object&' "ldnull" "${INIT}"
73 ./make_bin_test.sh bin_num_op_25_${I} unverifiable $OP object object "ldnull" "${INIT}"
78 for OP in div mul rem sub
80 ./make_bin_test.sh bin_num_op_26_${I} unverifiable $OP int32 'int32&'
81 ./make_bin_test.sh bin_num_op_27_${I} unverifiable $OP 'native int' 'native int&'
87 ./make_bin_test.sh bin_num_op_26_${I} unverifiable $OP int32 'int32&'
88 ./make_bin_test.sh bin_num_op_27_${I} unverifiable $OP 'native int' 'native int&'
95 if [ "$OP" == "div" ] || [ "$OP" == "div" ]; then
100 ./make_bin_test.sh bin_num_op_28_${I} unverifiable $OP 'int32&' int32 "ldc.i4.1" "${INIT}"
101 ./make_bin_test.sh bin_num_op_29_${I} unverifiable $OP 'native int&' 'native int' "ldc.i4.1" "${INIT}"
107 ./make_bin_test.sh bin_num_op_28_${I} unverifiable $OP 'int32&' int32
108 ./make_bin_test.sh bin_num_op_29_${I} unverifiable $OP 'native int&' 'native int'
113 for OP in div mul rem add
115 if [ "$OP" == "div" ] || [ "$OP" == "div" ]; then
120 ./make_bin_test.sh bin_num_op_30_${I} unverifiable $OP 'int32&' 'int32&' "ldnull" "${INIT}"
126 ./make_bin_test.sh bin_num_op_30_${I} unverifiable $OP 'int32&' 'int32&'
130 # Table 4: Binary Comparison or Branch Operations
132 for OP in ceq cgt clt
134 ./make_bin_test.sh bin_comp_op_1_${I} unverifiable $OP int32 int64
135 ./make_bin_test.sh bin_comp_op_2_${I} unverifiable $OP int32 float64
136 ./make_bin_test.sh bin_comp_op_3_${I} unverifiable $OP int32 'int32&'
137 ./make_bin_test.sh bin_comp_op_4_${I} unverifiable $OP int32 object
139 ./make_bin_test.sh bin_comp_op_5_${I} unverifiable $OP int64 int32
140 ./make_bin_test.sh bin_comp_op_6_${I} unverifiable $OP int64 'native int'
141 ./make_bin_test.sh bin_comp_op_7_${I} unverifiable $OP int64 float64
142 ./make_bin_test.sh bin_comp_op_8_${I} unverifiable $OP int64 'int64&'
143 ./make_bin_test.sh bin_comp_op_9_${I} unverifiable $OP int64 object
145 ./make_bin_test.sh bin_comp_op_10_${I} unverifiable $OP 'native int' int64
146 ./make_bin_test.sh bin_comp_op_11_${I} unverifiable $OP 'native int' float64
147 ./make_bin_test.sh bin_comp_op_12_${I} unverifiable $OP 'native int' object
149 ./make_bin_test.sh bin_comp_op_13_${I} unverifiable $OP float64 int32
150 ./make_bin_test.sh bin_comp_op_14_${I} unverifiable $OP float64 int64
151 ./make_bin_test.sh bin_comp_op_15_${I} unverifiable $OP float64 'native int'
152 ./make_bin_test.sh bin_comp_op_16_${I} unverifiable $OP float64 'float64&'
153 ./make_bin_test.sh bin_comp_op_17_${I} unverifiable $OP float64 object
155 ./make_bin_test.sh bin_comp_op_18_${I} unverifiable $OP 'int32&' int32
156 ./make_bin_test.sh bin_comp_op_19_${I} unverifiable $OP 'int64&' int64
157 ./make_bin_test.sh bin_comp_op_20_${I} unverifiable $OP 'float64&' float64
158 ./make_bin_test.sh bin_comp_op_21_${I} unverifiable $OP 'object&' object
160 ./make_bin_test.sh bin_comp_op_22_${I} unverifiable $OP object int32
161 ./make_bin_test.sh bin_comp_op_23_${I} unverifiable $OP object int64
162 ./make_bin_test.sh bin_comp_op_24_${I} unverifiable $OP object 'native int'
163 ./make_bin_test.sh bin_comp_op_25_${I} unverifiable $OP object float64
164 ./make_bin_test.sh bin_comp_op_26_${I} unverifiable $OP object 'object&'
171 ./make_bin_test.sh bin_comp_op_27_${I} unverifiable $OP 'native int' 'native int&'
172 ./make_bin_test.sh bin_comp_op_28_${I} unverifiable $OP 'native int&' 'native int'
173 ./make_bin_test.sh bin_comp_op_29_${I} unverifiable $OP object object
179 ./make_bin_test.sh bin_comp_op_27_${I} unverifiable $OP 'native int' 'native int&'
180 ./make_bin_test.sh bin_comp_op_28_${I} unverifiable $OP 'native int&' 'native int'
184 # Table 5: Integer Operations
188 ./make_bin_test.sh bin_int_op_1_${I} unverifiable "$OP" int32 int64
189 ./make_bin_test.sh bin_int_op_2_${I} unverifiable "$OP" int32 float64
190 ./make_bin_test.sh bin_int_op_3_${I} unverifiable "$OP" int32 'int32&'
191 ./make_bin_test.sh bin_int_op_4_${I} unverifiable "$OP" int32 object
193 ./make_bin_test.sh bin_int_op_5_${I} unverifiable "$OP" int64 int32
194 ./make_bin_test.sh bin_int_op_6_${I} unverifiable "$OP" int64 'native int'
195 ./make_bin_test.sh bin_int_op_7_${I} unverifiable "$OP" int64 float64
196 ./make_bin_test.sh bin_int_op_8_${I} unverifiable "$OP" int64 'int64&'
197 ./make_bin_test.sh bin_int_op_9_${I} unverifiable "$OP" int64 object
199 ./make_bin_test.sh bin_int_op_10_${I} unverifiable "$OP" 'native int' int64
200 ./make_bin_test.sh bin_int_op_11_${I} unverifiable "$OP" 'native int' float64
201 ./make_bin_test.sh bin_int_op_12_${I} unverifiable "$OP" 'native int' 'native int&'
202 ./make_bin_test.sh bin_int_op_13_${I} unverifiable "$OP" 'native int' object
204 ./make_bin_test.sh bin_int_op_14_${I} unverifiable "$OP" float64 int32
205 ./make_bin_test.sh bin_int_op_15_${I} unverifiable "$OP" float64 int64
206 ./make_bin_test.sh bin_int_op_16_${I} unverifiable "$OP" float64 'native int'
207 ./make_bin_test.sh bin_int_op_17_${I} unverifiable "$OP" float64 float64
208 ./make_bin_test.sh bin_int_op_18_${I} unverifiable "$OP" float64 'int32&'
209 ./make_bin_test.sh bin_int_op_19_${I} unverifiable "$OP" float64 object
211 ./make_bin_test.sh bin_int_op_20_${I} unverifiable "$OP" 'int32&' int32
212 ./make_bin_test.sh bin_int_op_21_${I} unverifiable "$OP" 'int64&' int64
213 ./make_bin_test.sh bin_int_op_22_${I} unverifiable "$OP" 'native int&' 'native int'
214 ./make_bin_test.sh bin_int_op_23_${I} unverifiable "$OP" 'float64&' float64
215 ./make_bin_test.sh bin_int_op_24_${I} unverifiable "$OP" 'int32&' 'int32&'
216 ./make_bin_test.sh bin_int_op_25_${I} unverifiable "$OP" 'float64&' object
218 ./make_bin_test.sh bin_int_op_26_${I} unverifiable "$OP" object int32
219 ./make_bin_test.sh bin_int_op_27_${I} unverifiable "$OP" object int64
220 ./make_bin_test.sh bin_int_op_28_${I} unverifiable "$OP" object 'native int'
221 ./make_bin_test.sh bin_int_op_29_${I} unverifiable "$OP" object float64
222 ./make_bin_test.sh bin_int_op_30_${I} unverifiable "$OP" object 'int32&'
223 ./make_bin_test.sh bin_int_op_31_${I} unverifiable "$OP" object object
228 for TYPE in bool int8 int16 char int32 int64 'native int' 'class Int8Enum'
230 ./make_unary_test.sh not_${I} valid "not\n\tpop" "$TYPE"
234 for TYPE in 'int32&' object "class MyStruct" typedref "method int32 *(int32)" 'class Template\`1<int32>' float32 float64
236 ./make_unary_test.sh not_${I} unverifiable "not\n\tpop" "$TYPE"
241 for TYPE in bool int8 int16 char int32 int64 'native int' 'class Int8Enum' float32 float64
243 ./make_unary_test.sh neg_${I} valid "neg\n\tpop" "$TYPE"
247 for TYPE in 'int32&' object "class MyStruct" typedref "method int32 *(int32)" 'class Template\`1<int32>'
249 ./make_unary_test.sh neg_${I} unverifiable "neg\n\tpop" "$TYPE"
254 # Table 6: Shift Operators
258 ./make_bin_test.sh shift_op_1_${I} unverifiable $OP int32 int64
259 ./make_bin_test.sh shift_op_2_${I} unverifiable $OP int32 float64
260 ./make_bin_test.sh shift_op_3_${I} unverifiable $OP int32 'int32&'
261 ./make_bin_test.sh shift_op_4_${I} unverifiable $OP int32 object
263 ./make_bin_test.sh shift_op_5_${I} unverifiable $OP int64 int64
264 ./make_bin_test.sh shift_op_6_${I} unverifiable $OP int64 float64
265 ./make_bin_test.sh shift_op_7_${I} unverifiable $OP int64 'int32&'
266 ./make_bin_test.sh shift_op_8_${I} unverifiable $OP int64 object
268 ./make_bin_test.sh shift_op_9_${I} unverifiable $OP 'native int' int64
269 ./make_bin_test.sh shift_op_10_${I} unverifiable $OP 'native int' float64
270 ./make_bin_test.sh shift_op_11_${I} unverifiable $OP 'native int' 'native int&'
271 ./make_bin_test.sh shift_op_12_${I} unverifiable $OP 'native int' object
273 ./make_bin_test.sh shift_op_13_${I} unverifiable $OP float64 int32
274 ./make_bin_test.sh shift_op_14_${I} unverifiable $OP float64 int64
275 ./make_bin_test.sh shift_op_15_${I} unverifiable $OP float64 'native int'
276 ./make_bin_test.sh shift_op_16_${I} unverifiable $OP float64 float64
277 ./make_bin_test.sh shift_op_17_${I} unverifiable $OP float64 'int32&'
278 ./make_bin_test.sh shift_op_18_${I} unverifiable $OP float64 object
280 ./make_bin_test.sh shift_op_19_${I} unverifiable $OP 'int32&' int32
281 ./make_bin_test.sh shift_op_20_${I} unverifiable $OP 'int64&' int64
282 ./make_bin_test.sh shift_op_21_${I} unverifiable $OP 'native int&' 'native int'
283 ./make_bin_test.sh shift_op_22_${I} unverifiable $OP 'float64&' float64
284 ./make_bin_test.sh shift_op_23_${I} unverifiable $OP 'int32&' 'int32&'
285 ./make_bin_test.sh shift_op_24_${I} unverifiable $OP 'float64&' object
287 ./make_bin_test.sh shift_op_25_${I} unverifiable $OP object int32
288 ./make_bin_test.sh shift_op_26_${I} unverifiable $OP object int64
289 ./make_bin_test.sh shift_op_27_${I} unverifiable $OP object 'native int'
290 ./make_bin_test.sh shift_op_28_${I} unverifiable $OP object float64
291 ./make_bin_test.sh shift_op_29_${I} unverifiable $OP object 'int32&'
292 ./make_bin_test.sh shift_op_30_${I} unverifiable $OP object object
296 # Table 8: Conversion Operations
299 for OP in "conv.i1\n\tpop" "conv.i2\n\tpop" "conv.i4\n\tpop" "conv.i8\n\tpop" "conv.r4\n\tpop" "conv.r8\n\tpop" "conv.u1\n\tpop" "conv.u2\n\tpop" "conv.u4\n\tpop" "conv.u8\n\tpop" "conv.i\n\tpop" "conv.u\n\tpop" "conv.r.un\n\tpop" "conv.ovf.i1\n\tpop" "conv.ovf.i2\n\tpop" "conv.ovf.i4\n\tpop" "conv.ovf.i8\n\tpop" "conv.ovf.u1\n\tpop" "conv.ovf.u2\n\tpop" "conv.ovf.u4\n\tpop" "conv.ovf.u8\n\tpop" "conv.ovf.i\n\tpop" "conv.ovf.u\n\tpop" "conv.ovf.i1.un\n\tpop" "conv.ovf.i2.un\n\tpop" "conv.ovf.i4.un\n\tpop" "conv.ovf.i8.un\n\tpop" "conv.ovf.u1.un\n\tpop" "conv.ovf.u2.un\n\tpop" "conv.ovf.u4.un\n\tpop" "conv.ovf.u8.un\n\tpop" "conv.ovf.i.un\n\tpop" "conv.ovf.u.un\n\tpop"
301 for TYPE in 'int8' 'bool' 'unsigned int8' 'int16' 'char' 'unsigned int16' 'int32' 'unsigned int32' 'int64' 'unsigned int64' 'float32' 'float64' 'native int' 'native unsigned int'
303 ./make_unary_test.sh conv_op_${J}_${I} valid $OP "$TYPE"
307 for TYPE in 'object' 'string' 'class Class' 'valuetype MyStruct' 'int32[]' 'int32[,]' 'typedref' 'int32*' 'method int32 *(int32)' 'class Template`1<object>' 'int8&' 'bool&' 'unsigned int8&' 'int16&' 'char&' 'unsigned int16&' 'int32&' 'unsigned int32&' 'int64&' 'unsigned int64&' 'float32&' 'float64&' 'native int&' 'native unsigned int&' 'object&' 'string&' 'class Class&' 'valuetype MyStruct&' 'int32[]&' 'int32[,]&' 'typedref&' 'class Template`1<object>&'
309 ./make_unary_test.sh conv_op_${J}_${I} unverifiable $OP "$TYPE"
316 #local and argument store with invalid values lead to unverifiable code
318 for OP in stloc.0 "stloc.s 0" "starg 0" "starg.s 0"
320 ./make_store_test.sh coercion_1_${I} unverifiable "$OP" int8 int64
321 ./make_store_test.sh coercion_2_${I} unverifiable "$OP" int8 float64
322 ./make_store_test.sh coercion_3_${I} unverifiable "$OP" int8 'int8&'
323 ./make_store_test.sh coercion_4_${I} unverifiable "$OP" int8 object
325 ./make_store_test.sh coercion_5_${I} unverifiable "$OP" 'unsigned int8' int64
326 ./make_store_test.sh coercion_6_${I} unverifiable "$OP" 'unsigned int8' float64
327 ./make_store_test.sh coercion_7_${I} unverifiable "$OP" 'unsigned int8' 'unsigned int8&'
328 ./make_store_test.sh coercion_8_${I} unverifiable "$OP" 'unsigned int8' object
330 ./make_store_test.sh coercion_9_${I} unverifiable "$OP" bool int64
331 ./make_store_test.sh coercion_10_${I} unverifiable "$OP" bool float64
332 ./make_store_test.sh coercion_11_${I} unverifiable "$OP" bool 'bool&'
333 ./make_store_test.sh coercion_12_${I} unverifiable "$OP" bool object
335 ./make_store_test.sh coercion_13_${I} unverifiable "$OP" int16 int64
336 ./make_store_test.sh coercion_14_${I} unverifiable "$OP" int16 float64
337 ./make_store_test.sh coercion_15_${I} unverifiable "$OP" int16 'int16&'
338 ./make_store_test.sh coercion_16_${I} unverifiable "$OP" int16 object
340 ./make_store_test.sh coercion_17_${I} unverifiable "$OP" 'unsigned int16' int64
341 ./make_store_test.sh coercion_18_${I} unverifiable "$OP" 'unsigned int16' float64
342 ./make_store_test.sh coercion_19_${I} unverifiable "$OP" 'unsigned int16' 'unsigned int16&'
343 ./make_store_test.sh coercion_20_${I} unverifiable "$OP" 'unsigned int16' object
345 ./make_store_test.sh coercion_21_${I} unverifiable "$OP" char int64
346 ./make_store_test.sh coercion_22_${I} unverifiable "$OP" char float64
347 ./make_store_test.sh coercion_23_${I} unverifiable "$OP" char 'char&'
348 ./make_store_test.sh coercion_24_${I} unverifiable "$OP" char object
350 ./make_store_test.sh coercion_25_${I} unverifiable "$OP" int32 int64
351 ./make_store_test.sh coercion_26_${I} unverifiable "$OP" int32 float64
352 ./make_store_test.sh coercion_27_${I} unverifiable "$OP" int32 'int32&'
353 ./make_store_test.sh coercion_28_${I} unverifiable "$OP" int32 object
355 ./make_store_test.sh coercion_29_${I} unverifiable "$OP" 'unsigned int32' int64
356 ./make_store_test.sh coercion_30_${I} unverifiable "$OP" 'unsigned int32' float64
357 ./make_store_test.sh coercion_31_${I} unverifiable "$OP" 'unsigned int32' 'unsigned int32&'
358 ./make_store_test.sh coercion_32_${I} unverifiable "$OP" 'unsigned int32' object
360 ./make_store_test.sh coercion_33_${I} unverifiable "$OP" int64 int32
361 ./make_store_test.sh coercion_34_${I} unverifiable "$OP" int64 'native int'
362 ./make_store_test.sh coercion_35_${I} unverifiable "$OP" int64 float64
363 ./make_store_test.sh coercion_36_${I} unverifiable "$OP" int64 'int64&'
364 ./make_store_test.sh coercion_37_${I} unverifiable "$OP" int64 object
366 ./make_store_test.sh coercion_38_${I} unverifiable "$OP" 'unsigned int64' int32
367 ./make_store_test.sh coercion_39_${I} unverifiable "$OP" 'unsigned int64' 'native int'
368 ./make_store_test.sh coercion_40_${I} unverifiable "$OP" 'unsigned int64' float64
369 ./make_store_test.sh coercion_41_${I} unverifiable "$OP" 'unsigned int64' 'unsigned int64&'
370 ./make_store_test.sh coercion_42_${I} unverifiable "$OP" 'unsigned int64' object
372 ./make_store_test.sh coercion_43_${I} unverifiable "$OP" 'native int' int64
373 ./make_store_test.sh coercion_44_${I} unverifiable "$OP" 'native int' float64
374 ./make_store_test.sh coercion_45_${I} unverifiable "$OP" 'native int' 'native int&'
375 ./make_store_test.sh coercion_46_${I} unverifiable "$OP" 'native int' object
377 ./make_store_test.sh coercion_47_${I} unverifiable "$OP" 'native unsigned int' int64
378 ./make_store_test.sh coercion_48_${I} unverifiable "$OP" 'native unsigned int' float64
379 ./make_store_test.sh coercion_49_${I} unverifiable "$OP" 'native unsigned int' 'native unsigned int&'
380 ./make_store_test.sh coercion_50_${I} unverifiable "$OP" 'native unsigned int' object
382 ./make_store_test.sh coercion_51_${I} unverifiable "$OP" float32 int32
383 ./make_store_test.sh coercion_52_${I} unverifiable "$OP" float32 'native int'
384 ./make_store_test.sh coercion_53_${I} unverifiable "$OP" float32 int64
385 ./make_store_test.sh coercion_54_${I} unverifiable "$OP" float32 'float32&'
386 ./make_store_test.sh coercion_55_${I} unverifiable "$OP" float32 object
388 ./make_store_test.sh coercion_56_${I} unverifiable "$OP" float64 int32
389 ./make_store_test.sh coercion_57_${I} unverifiable "$OP" float64 'native int'
390 ./make_store_test.sh coercion_58_${I} unverifiable "$OP" float64 int64
391 ./make_store_test.sh coercion_59_${I} unverifiable "$OP" float64 'float64&'
392 ./make_store_test.sh coercion_60_${I} unverifiable "$OP" float64 object
394 ./make_store_test.sh coercion_61_${I} unverifiable "$OP" object int32
395 ./make_store_test.sh coercion_62_${I} unverifiable "$OP" object 'native int'
396 ./make_store_test.sh coercion_63_${I} unverifiable "$OP" object int64
397 ./make_store_test.sh coercion_64_${I} unverifiable "$OP" object float64
398 ./make_store_test.sh coercion_65_${I} unverifiable "$OP" object 'object&'
400 ./make_store_test.sh coercion_66_${I} unverifiable "$OP" 'class ValueType' int32
401 ./make_store_test.sh coercion_67_${I} unverifiable "$OP" 'class ValueType' 'native int'
402 ./make_store_test.sh coercion_68_${I} unverifiable "$OP" 'class ValueType' int64
403 ./make_store_test.sh coercion_69_${I} unverifiable "$OP" 'class ValueType' float64
404 ./make_store_test.sh coercion_70_${I} unverifiable "$OP" 'class ValueType' 'class ValueType&'
405 ./make_store_test.sh coercion_71_${I} unverifiable "$OP" 'class ValueType' object
407 ./make_store_test.sh coercion_72_${I} unverifiable "$OP" 'int32&' int32
408 ./make_store_test.sh coercion_73_${I} unverifiable "$OP" 'int32&' 'native int'
409 ./make_store_test.sh coercion_74_${I} unverifiable "$OP" 'int32&' int64
410 ./make_store_test.sh coercion_75_${I} unverifiable "$OP" 'int32&' float64
411 ./make_store_test.sh coercion_76_${I} unverifiable "$OP" 'int32&' object
413 ./make_store_test.sh coercion_77_${I} unverifiable "$OP" typedref int32
414 ./make_store_test.sh coercion_78_${I} unverifiable "$OP" typedref 'native int'
415 ./make_store_test.sh coercion_89_${I} unverifiable "$OP" typedref int64
416 ./make_store_test.sh coercion_80_${I} unverifiable "$OP" typedref float64
417 ./make_store_test.sh coercion_81_${I} unverifiable "$OP" typedref 'typedref&'
418 ./make_store_test.sh coercion_82_${I} unverifiable "$OP" typedref object
423 if [ "$3" != "" ]; then
425 elif [ "$2" != "" ]; then
431 if [ "$A" == "bool&" ]; then
433 elif [ "$A" == "char&" ]; then
440 #Tests related to storing reference types on other reference types
442 for OP in stloc.0 "stloc.s 0" "starg 0" "starg.s 0"
444 for TYPE1 in 'native int&' 'native unsigned int&'
446 for TYPE2 in 'int8&' 'unsigned int8&' 'bool&' 'int16&' 'unsigned int16&' 'char&' 'int32&' 'unsigned int32&' 'int64&' 'unsigned int64&' 'float32&' 'float64&' 'native int&' 'native unsigned int&'
450 if [ "$TA" == "$TB" ]; then
451 ./make_store_test.sh ref_coercion_${I} valid "$OP" "$TYPE1" "$TYPE2"
452 elif [ "$TA" == "int32&" ] && [ "$TB" == "int&" ]; then
453 ./make_store_test.sh ref_coercion_${I} valid "$OP" "$TYPE1" "$TYPE2"
454 elif [ "$TA" == "int&" ] && [ "$TB" == "int32&" ]; then
455 ./make_store_test.sh ref_coercion_${I} valid "$OP" "$TYPE1" "$TYPE2"
457 ./make_store_test.sh ref_coercion_${I} unverifiable "$OP" "$TYPE1" "$TYPE2"
465 for OP in stloc.0 "stloc.s 0" "starg 0" "starg.s 0"
467 for TYPE1 in 'int8&' 'unsigned int8&' 'bool&' 'int16&' 'unsigned int16&' 'char&' 'int32&' 'unsigned int32&' 'int64&' 'unsigned int64&' 'float32&' 'float64&'
469 for TYPE2 in 'int8&' 'unsigned int8&' 'bool&' 'int16&' 'unsigned int16&' 'char&' 'int32&' 'unsigned int32&' 'int64&' 'unsigned int64&' 'float32&' 'float64&'
473 if [ "$TA" == "$TB" ]; then
474 ./make_store_test.sh ref_coercion_${I} valid "$OP" "$TYPE1" "$TYPE2"
476 ./make_store_test.sh ref_coercion_${I} unverifiable "$OP" "$TYPE1" "$TYPE2"
483 for OP in stloc.0 "stloc.s 0" "starg 0" "starg.s 0"
485 for TYPE1 in 'class ClassA&' 'class ClassB&' 'class InterfaceA&' 'class InterfaceB&' 'class ValueType&'
487 for TYPE2 in 'class ClassA&' 'class ClassB&' 'class InterfaceA&' 'class InterfaceB&' 'class ValueType&'
489 if [ "$TYPE1" == "$TYPE2" ]; then
490 ./make_store_test.sh ref_coercion_${I} valid "$OP" "$TYPE1" "$TYPE2"
492 ./make_store_test.sh ref_coercion_${I} unverifiable "$OP" "$TYPE1" "$TYPE2"
499 #Field store parameter compatibility leads to invalid code
500 #Calling method with diferent verification types on stack lead to invalid code
502 for OP in "stfld TYPE1 Class::fld" "stsfld TYPE1 Class::sfld\n\tpop" "call void Class::Method(TYPE1)"
504 ./make_obj_store_test.sh obj_coercion_1_${I} unverifiable "$OP" int8 int64
505 ./make_obj_store_test.sh obj_coercion_2_${I} unverifiable "$OP" int8 float64
506 ./make_obj_store_test.sh obj_coercion_3_${I} unverifiable "$OP" int8 'int8&'
507 ./make_obj_store_test.sh obj_coercion_4_${I} unverifiable "$OP" int8 object
509 ./make_obj_store_test.sh obj_coercion_5_${I} unverifiable "$OP" 'unsigned int8' int64
510 ./make_obj_store_test.sh obj_coercion_6_${I} unverifiable "$OP" 'unsigned int8' float64
511 ./make_obj_store_test.sh obj_coercion_7_${I} unverifiable "$OP" 'unsigned int8' 'unsigned int8&'
512 ./make_obj_store_test.sh obj_coercion_8_${I} unverifiable "$OP" 'unsigned int8' object
514 ./make_obj_store_test.sh obj_coercion_9_${I} unverifiable "$OP" bool int64
515 ./make_obj_store_test.sh obj_coercion_10_${I} unverifiable "$OP" bool float64
516 ./make_obj_store_test.sh obj_coercion_11_${I} unverifiable "$OP" bool 'bool&'
517 ./make_obj_store_test.sh obj_coercion_12_${I} unverifiable "$OP" bool object
519 ./make_obj_store_test.sh obj_coercion_13_${I} unverifiable "$OP" int16 int64
520 ./make_obj_store_test.sh obj_coercion_14_${I} unverifiable "$OP" int16 float64
521 ./make_obj_store_test.sh obj_coercion_15_${I} unverifiable "$OP" int16 'int16&'
522 ./make_obj_store_test.sh obj_coercion_16_${I} unverifiable "$OP" int16 object
524 ./make_obj_store_test.sh obj_coercion_17_${I} unverifiable "$OP" 'unsigned int16' int64
525 ./make_obj_store_test.sh obj_coercion_18_${I} unverifiable "$OP" 'unsigned int16' float64
526 ./make_obj_store_test.sh obj_coercion_19_${I} unverifiable "$OP" 'unsigned int16' 'unsigned int16&'
527 ./make_obj_store_test.sh obj_coercion_20_${I} unverifiable "$OP" 'unsigned int16' object
529 ./make_obj_store_test.sh obj_coercion_21_${I} unverifiable "$OP" char int64
530 ./make_obj_store_test.sh obj_coercion_22_${I} unverifiable "$OP" char float64
531 ./make_obj_store_test.sh obj_coercion_23_${I} unverifiable "$OP" char 'char&'
532 ./make_obj_store_test.sh obj_coercion_24_${I} unverifiable "$OP" char object
534 ./make_obj_store_test.sh obj_coercion_25_${I} unverifiable "$OP" int32 int64
535 ./make_obj_store_test.sh obj_coercion_26_${I} unverifiable "$OP" int32 float64
536 ./make_obj_store_test.sh obj_coercion_27_${I} unverifiable "$OP" int32 'int32&'
537 ./make_obj_store_test.sh obj_coercion_28_${I} unverifiable "$OP" int32 object
539 ./make_obj_store_test.sh obj_coercion_29_${I} unverifiable "$OP" 'unsigned int32' int64
540 ./make_obj_store_test.sh obj_coercion_30_${I} unverifiable "$OP" 'unsigned int32' float64
541 ./make_obj_store_test.sh obj_coercion_31_${I} unverifiable "$OP" 'unsigned int32' 'unsigned int32&'
542 ./make_obj_store_test.sh obj_coercion_32_${I} unverifiable "$OP" 'unsigned int32' object
544 ./make_obj_store_test.sh obj_coercion_33_${I} unverifiable "$OP" int64 int32
545 ./make_obj_store_test.sh obj_coercion_34_${I} unverifiable "$OP" int64 'native int'
546 ./make_obj_store_test.sh obj_coercion_35_${I} unverifiable "$OP" int64 float64
547 ./make_obj_store_test.sh obj_coercion_36_${I} unverifiable "$OP" int64 'int64&'
548 ./make_obj_store_test.sh obj_coercion_37_${I} unverifiable "$OP" int64 object
550 ./make_obj_store_test.sh obj_coercion_38_${I} unverifiable "$OP" 'unsigned int64' int32
551 ./make_obj_store_test.sh obj_coercion_39_${I} unverifiable "$OP" 'unsigned int64' 'native int'
552 ./make_obj_store_test.sh obj_coercion_40_${I} unverifiable "$OP" 'unsigned int64' float64
553 ./make_obj_store_test.sh obj_coercion_41_${I} unverifiable "$OP" 'unsigned int64' 'unsigned int64&'
554 ./make_obj_store_test.sh obj_coercion_42_${I} unverifiable "$OP" 'unsigned int64' object
556 ./make_obj_store_test.sh obj_coercion_43_${I} unverifiable "$OP" 'native int' int64
557 ./make_obj_store_test.sh obj_coercion_44_${I} unverifiable "$OP" 'native int' float64
558 ./make_obj_store_test.sh obj_coercion_45_${I} unverifiable "$OP" 'native int' 'native int&'
559 ./make_obj_store_test.sh obj_coercion_46_${I} unverifiable "$OP" 'native int' object
561 ./make_obj_store_test.sh obj_coercion_47_${I} unverifiable "$OP" 'native unsigned int' int64
562 ./make_obj_store_test.sh obj_coercion_48_${I} unverifiable "$OP" 'native unsigned int' float64
563 ./make_obj_store_test.sh obj_coercion_49_${I} unverifiable "$OP" 'native unsigned int' 'native unsigned int&'
564 ./make_obj_store_test.sh obj_coercion_50_${I} unverifiable "$OP" 'native unsigned int' object
566 ./make_obj_store_test.sh obj_coercion_51_${I} unverifiable "$OP" float32 int32
567 ./make_obj_store_test.sh obj_coercion_52_${I} unverifiable "$OP" float32 'native int'
568 ./make_obj_store_test.sh obj_coercion_53_${I} unverifiable "$OP" float32 int64
569 ./make_obj_store_test.sh obj_coercion_54_${I} unverifiable "$OP" float32 'float32&'
570 ./make_obj_store_test.sh obj_coercion_55_${I} unverifiable "$OP" float32 object
572 ./make_obj_store_test.sh obj_coercion_56_${I} unverifiable "$OP" float64 int32
573 ./make_obj_store_test.sh obj_coercion_57_${I} unverifiable "$OP" float64 'native int'
574 ./make_obj_store_test.sh obj_coercion_58_${I} unverifiable "$OP" float64 int64
575 ./make_obj_store_test.sh obj_coercion_59_${I} unverifiable "$OP" float64 'float64&'
576 ./make_obj_store_test.sh obj_coercion_60_${I} unverifiable "$OP" float64 object
578 ./make_obj_store_test.sh obj_coercion_61_${I} unverifiable "$OP" object int32
579 ./make_obj_store_test.sh obj_coercion_62_${I} unverifiable "$OP" object 'native int'
580 ./make_obj_store_test.sh obj_coercion_63_${I} unverifiable "$OP" object int64
581 ./make_obj_store_test.sh obj_coercion_64_${I} unverifiable "$OP" object float64
582 ./make_obj_store_test.sh obj_coercion_65_${I} unverifiable "$OP" object 'object&'
584 ./make_obj_store_test.sh obj_coercion_66_${I} unverifiable "$OP" 'class ValueType' int32
585 ./make_obj_store_test.sh obj_coercion_67_${I} unverifiable "$OP" 'class ValueType' 'native int'
586 ./make_obj_store_test.sh obj_coercion_68_${I} unverifiable "$OP" 'class ValueType' int64
587 ./make_obj_store_test.sh obj_coercion_69_${I} unverifiable "$OP" 'class ValueType' float64
588 ./make_obj_store_test.sh obj_coercion_70_${I} unverifiable "$OP" 'class ValueType' 'class ValueType&'
589 ./make_obj_store_test.sh obj_coercion_71_${I} unverifiable "$OP" 'class ValueType' object
592 #These tests don't test store error since one cannot have an 'int32&' field
593 #They should exist in the structural tests session
594 #./make_obj_store_test.sh obj_coercion_72_${I} invalid "$OP" 'int32&' int32
595 #./make_obj_store_test.sh obj_coercion_73_${I} invalid "$OP" 'int32&' 'native int'
596 #./make_obj_store_test.sh obj_coercion_74_${I} invalid "$OP" 'int32&' int64
597 #./make_obj_store_test.sh obj_coercion_75_${I} invalid "$OP" 'int32&' float64
598 #./make_obj_store_test.sh obj_coercion_76_${I} invalid "$OP" 'int32&' object
600 ./make_obj_store_test.sh obj_coercion_77_${I} invalid "$OP" typedref int32
601 ./make_obj_store_test.sh obj_coercion_78_${I} invalid "$OP" typedref 'native int'
602 ./make_obj_store_test.sh obj_coercion_79_${I} invalid "$OP" typedref int64
603 ./make_obj_store_test.sh obj_coercion_80_${I} invalid "$OP" typedref float64
604 ./make_obj_store_test.sh obj_coercion_81_${I} invalid "$OP" typedref 'typedref&'
605 ./make_obj_store_test.sh obj_coercion_82_${I} invalid "$OP" typedref object
609 # 1.8.1.2.3 Verification type compatibility (Assignment compatibility)
611 for OP in stloc.0 "stloc.s 0" "starg.s 0"
613 # ClassB not subtype of ClassA.
614 ./make_store_test.sh assign_compat_1_${I} unverifiable "$OP" 'class ClassA' 'class ClassB'
616 # ClassA not interface type.
617 # FIXME: what was the purpoise of this test? on it's current for it is valid and not unverifiable
618 ./make_store_test.sh assign_compat_3_${I} valid "$OP" object 'class ClassA'
620 # Implementation of InterfaceB does not require the implementation of InterfaceA
621 ./make_store_test.sh assign_compat_4_${I} unverifiable "$OP" 'class InterfaceA' 'class InterfaceB'
624 ./make_store_test.sh assign_compat_5_${I} unverifiable "$OP" 'string []' 'string[,]'
627 ./make_store_test.sh assign_compat_6_${I} unverifiable "$OP" 'string [,]' 'string[]'
629 # Arrays with different rank.
630 ./make_store_test.sh assign_compat_7_${I} unverifiable "$OP" 'string [,]' 'string[,,]'
632 # Method pointers with different return types.
633 ./make_store_test.sh assign_compat_8_${I} unverifiable "$OP" 'method int32 *(int32)' 'method float32 *(int32)'
635 # Method pointers with different parameters.
636 ./make_store_test.sh assign_compat_9_${I} unverifiable "$OP" 'method int32 *(float64)' 'method int32 *(int32)'
638 # Method pointers with different calling conventions.
639 ./make_store_test.sh assign_compat_10_${I} unverifiable "$OP" 'method vararg int32 *(int32)' 'method int32 *(int32)'
641 # Method pointers with different calling conventions. (2)
642 ./make_store_test.sh assign_compat_11_${I} unverifiable "$OP" 'method unmanaged fastcall int32 *(int32)' 'method int32 *(int32)'
644 # Method pointers with different calling conventions. (3)
645 ./make_store_test.sh assign_compat_12_${I} unverifiable "$OP" 'method unmanaged fastcall int32 *(int32)' 'method unmanaged stdcall int32 *(int32)'
649 for OP in "stfld TYPE1 Class::fld" "stsfld TYPE1 Class::sfld\n\tpop" "call void Class::Method(TYPE1)"
651 # ClassB not subtype of ClassA.
652 ./make_obj_store_test.sh assign_compat_1_${I} unverifiable "$OP" 'class ClassA' 'class ClassB'
654 # object not subtype of ClassA.
655 ./make_obj_store_test.sh assign_compat_2_${I} unverifiable "$OP" 'class ClassA' 'object'
657 # ClassA not interface type.
658 #FIXME: this test is valid, you can store type ClassA in a object field
659 ./make_obj_store_test.sh assign_compat_3_${I} valid "$OP" object 'class ClassA'
661 # Implementation of InterfaceB does not require the implementation of InterfaceA
662 ./make_obj_store_test.sh assign_compat_4_${I} unverifiable "$OP" 'class InterfaceA' 'class InterfaceB'
665 ./make_obj_store_test.sh assign_compat_5_${I} unverifiable "$OP" 'string []' 'string[,]'
668 ./make_obj_store_test.sh assign_compat_6_${I} unverifiable "$OP" 'string [,]' 'string[]'
670 # Arrays with different rank.
671 ./make_obj_store_test.sh assign_compat_7_${I} unverifiable "$OP" 'string [,]' 'string[,,]'
673 # Method pointers with different return types.
674 ./make_obj_store_test.sh assign_compat_8_${I} unverifiable "$OP" 'method int32 *(int32)' 'method float32 *(int32)'
676 # Method pointers with different parameters.
677 ./make_obj_store_test.sh assign_compat_9_${I} unverifiable "$OP" 'method int32 *(float64)' 'method int32 *(int32)'
679 # Method pointers with different calling conventions.
680 ./make_obj_store_test.sh assign_compat_10_${I} unverifiable "$OP" 'method vararg int32 *(int32)' 'method int32 *(int32)'
682 # Method pointers with different calling conventions. (2)
683 ./make_obj_store_test.sh assign_compat_11_${I} unverifiable "$OP" 'method unmanaged fastcall int32 *(int32)' 'method int32 *(int32)'
685 # Method pointers with different calling conventions. (3)
686 ./make_obj_store_test.sh assign_compat_12_${I} unverifiable "$OP" 'method unmanaged fastcall int32 *(int32)' 'method unmanaged stdcall int32 *(int32)'
691 # 1.8.1.3 Merging stack states
693 for TYPE1 in int32 int64 'native int' float64 'valuetype ValueType' 'class Class' 'int8&' 'int16&' 'int32&' 'int64&' 'native int&' 'float32&' 'float64&' 'valuetype ValueType&' 'class Class&' 'method int32 *(int32)' 'method float32 *(int32)' 'method int32 *(float64)' 'method vararg int32 *(int32)'
695 for TYPE2 in int32 int64 'native int' float64 'valuetype ValueType' 'class Class' 'int8&' 'int16&' 'int32&' 'int64&' 'native int&' 'float32&' 'float64&' 'valuetype ValueType&' 'class Class&' 'method int32 *(int32)' 'method float32 *(int32)' 'method int32 *(float64)' 'method vararg int32 *(int32)'
697 ZZ=`echo $TYPE1 | grep "*";`
699 ZZ=`echo $TYPE2 | grep "*";`
702 if (($T1_PTR == 0 || $T2_PTR == 0)); then
703 ./make_stack_merge_test.sh stack_merge_${I} unverifiable "$TYPE1" "$TYPE2"
704 elif [ "$TYPE1" == "$TYPE2" ]; then
705 ./make_stack_merge_test.sh stack_merge_${I} valid "$TYPE1" "$TYPE2"
706 elif [ "$TYPE1" == "int32" ] && [ "$TYPE2" == "native int" ]; then
707 ./make_stack_merge_test.sh stack_merge_${I} valid "$TYPE1" "$TYPE2"
708 elif [ "$TYPE1" == "native int" ] && [ "$TYPE2" == "int32" ]; then
709 ./make_stack_merge_test.sh stack_merge_${I} valid "$TYPE1" "$TYPE2"
710 elif [ "$TYPE1" == "int32&" ] && [ "$TYPE2" == "native int&" ]; then
711 ./make_stack_merge_test.sh stack_merge_${I} valid "$TYPE1" "$TYPE2"
712 elif [ "$TYPE1" == "native int&" ] && [ "$TYPE2" == "int32&" ]; then
713 ./make_stack_merge_test.sh stack_merge_${I} valid "$TYPE1" "$TYPE2"
715 ./make_stack_merge_test.sh stack_merge_${I} unverifiable "$TYPE1" "$TYPE2"
721 # Unverifiable array stack merges
723 # These are verifiable, the merged type is 'object' or 'Array'
724 #for TYPE1 in 'string []' 'string [,]' 'string [,,]'
726 # for TYPE2 in 'string []' 'string [,]' 'string [,,]'
728 # if [ "$TYPE1" != "$TYPE2" ]; then
729 # ./make_stack_merge_test.sh stack_merge_${I} unverifiable "$TYPE1" "$TYPE2"
735 # Exception block branch tests (see 3.15)
737 for OP in br "ldc.i4.0\n\tbrfalse"
739 ./make_exception_branch_test.sh in_try_${I} "$OP branch_target1"
740 ./make_exception_branch_test.sh in_catch_${I} "$OP branch_target2"
741 ./make_exception_branch_test.sh in_finally_${I} "$OP branch_target3"
742 ./make_exception_branch_test.sh in_filter_${I} "$OP branch_target4"
743 ./make_exception_branch_test.sh out_try_${I} "" "$OP branch_target5"
744 ./make_exception_branch_test.sh out_catch_${I} "" "" "$OP branch_target5"
745 ./make_exception_branch_test.sh out_finally_${I} "" "" "" "$OP branch_target5"
746 ./make_exception_branch_test.sh out_filter_${I} "" "" "" "" "$OP branch_target5"
750 ./make_exception_branch_test.sh ret_out_try "" "ldc.i4.0\n\tret"
751 ./make_exception_branch_test.sh ret_out_catch "" "" "ldc.i4.0\n\tret"
752 ./make_exception_branch_test.sh ret_out_finally "" "" "" "ldc.i4.0\n\tret"
753 ./make_exception_branch_test.sh ret_out_filter "" "" "" "" "ldc.i4.0\n\tret"
755 # Unary branch op type tests (see 3.17)
759 ./make_unary_test.sh un_branch_op unverifiable "$OP branch_target" float64
762 # Ldloc.0 and Ldarg tests (see 3.38)
765 for OP in "ldarg.s 0" "ldarg.0"
767 ./make_unary_test.sh ld_no_slot_${I} unverifiable "pop\n\t$OP\n\tpop" int32
771 for OP in "ldloc.s 1" "ldloc.1" "ldloc 1"
773 ./make_unary_test.sh ld_no_slot_${I} invalid "pop\n\t$OP\n\tpop" int32
777 for OP in "ldarga.s 0" "ldloca.s 1"
779 ./make_unary_test.sh ld_no_slot_${I} invalid "pop\n\t$OP\n\tpop" int32
783 # Starg and Stloc tests (see 3.61)
786 for OP in "starg.s 0"
788 ./make_unary_test.sh st_no_slot_${I} unverifiable "$OP" int32
792 for OP in "stloc.s 1"
794 ./make_unary_test.sh st_no_slot_${I} invalid "$OP" int32
798 # Ldfld and Ldflda tests (see 4.10)
800 for OP in ldfld ldflda
802 ./make_unary_test.sh ${OP}_no_fld invalid "$OP int32 Class::invalid\n\tpop" "class Class"
803 ./make_unary_test.sh ${OP}_bad_obj unverifiable "$OP int32 Class::valid\n\tpop" object
804 ./make_unary_test.sh ${OP}_obj_int32 unverifiable "$OP int32 Class::valid\n\tpop" int32
805 ./make_unary_test.sh ${OP}_obj_int64 unverifiable "$OP int32 Class::valid\n\tpop" int64
806 ./make_unary_test.sh ${OP}_obj_float64 unverifiable "$OP int32 Class::valid\n\tpop" float64
807 ./make_unary_test.sh ${OP}_obj_native_int unverifiable "$OP int32 Class::valid\n\tpop" 'native int'
808 ./make_unary_test.sh ${OP}_obj_ref_overlapped unverifiable "$OP object Overlapped::objVal\n\tpop" "class Overlapped"
809 ./make_unary_test.sh ${OP}_obj_overlapped_field_not_accessible unverifiable "$OP int32 Overlapped::publicIntVal\n\tpop" "class Overlapped"
812 #TODO: these tests are bogus, they need to be fixed
813 # Stfld tests (see 4.28)
815 ./make_unary_test.sh stfld_no_fld invalid "ldc.i4.0\n\tstfld int32 Class::invalid" "class Class"
816 ./make_unary_test.sh stfld_bad_obj unverifiable "ldc.i4.0\n\tstfld int32 Class::valid" object
817 ./make_unary_test.sh stfld_obj_int32 unverifiable "ldc.i4.0\n\tstfld int32 Class::valid" int32
818 ./make_unary_test.sh stfld_obj_int64 unverifiable "ldc.i4.0\n\tstfld int32 Class::valid" int64
819 ./make_unary_test.sh stfld_obj_float64 unverifiable "ldc.i4.0\n\tstfld int32 Class::valid" float64
820 ./make_unary_test.sh stfld_no_int invalid "stfld int32 Class::valid" "class Class"
821 ./make_unary_test.sh stfld_obj_native_int unverifiable "ldc.i4.0\n\tstfld int32 Class::valid" 'native int'
823 # Box tests (see 4.1)
825 # Box non-existent type.
826 ./make_unary_test.sh box_bad_type unverifiable "box valuetype NonExistent\n\tpop" "valuetype NonExistent"
828 # Top of stack not assignment compatible with typeToc.
829 ./make_unary_test.sh box_not_compat unverifiable "box [mscorlib]System.Int32\n\tpop" float32
832 ./make_unary_test.sh box_byref invalid "box [mscorlib]System.Int32\&\n\tpop" 'int32&'
834 # Box byref-like type.
835 ./make_unary_test.sh box_byref_like unverifiable "box [mscorlib]System.TypedReference\n\tpop" typedref
837 #This is illegal since you cannot have a Void local variable, it should go into the structural tests part
839 #./make_unary_test.sh box_void unverifiable "box [mscorlib]System.Void\n\tpop" "class [mscorlib]System.Void"
845 ./make_ret_test.sh ret_coercion_1 unverifiable int8 int64
846 ./make_ret_test.sh ret_coercion_2 unverifiable int8 float64
847 ./make_ret_test.sh ret_coercion_3 unverifiable int8 'int8&'
848 ./make_ret_test.sh ret_coercion_4 unverifiable int8 object
850 ./make_ret_test.sh ret_coercion_5 unverifiable 'unsigned int8' int64
851 ./make_ret_test.sh ret_coercion_6 unverifiable 'unsigned int8' float64
852 ./make_ret_test.sh ret_coercion_6 unverifiable 'unsigned int8' float64
853 ./make_ret_test.sh ret_coercion_6 unverifiable 'unsigned int8' float64
854 ./make_ret_test.sh ret_coercion_7 unverifiable 'unsigned int8' 'unsigned int8&'
855 ./make_ret_test.sh ret_coercion_8 unverifiable 'unsigned int8' object
857 ./make_ret_test.sh ret_coercion_9 unverifiable bool int64
858 ./make_ret_test.sh ret_coercion_10 unverifiable bool float64
859 ./make_ret_test.sh ret_coercion_11 unverifiable bool 'bool&'
860 ./make_ret_test.sh ret_coercion_12 unverifiable bool object
862 ./make_ret_test.sh ret_coercion_13 unverifiable int16 int64
863 ./make_ret_test.sh ret_coercion_14 unverifiable int16 float64
864 ./make_ret_test.sh ret_coercion_15 unverifiable int16 'int16&'
865 ./make_ret_test.sh ret_coercion_16 unverifiable int16 object
867 ./make_ret_test.sh ret_coercion_17 unverifiable 'unsigned int16' int64
868 ./make_ret_test.sh ret_coercion_18 unverifiable 'unsigned int16' float64
869 ./make_ret_test.sh ret_coercion_19 unverifiable 'unsigned int16' 'unsigned int16&'
870 ./make_ret_test.sh ret_coercion_20 unverifiable 'unsigned int16' object
872 ./make_ret_test.sh ret_coercion_21 unverifiable char int64
873 ./make_ret_test.sh ret_coercion_22 unverifiable char float64
874 ./make_ret_test.sh ret_coercion_23 unverifiable char 'char&'
875 ./make_ret_test.sh ret_coercion_24 unverifiable char object
877 ./make_ret_test.sh ret_coercion_25 unverifiable int32 int64
878 ./make_ret_test.sh ret_coercion_26 unverifiable int32 float64
879 ./make_ret_test.sh ret_coercion_27 unverifiable int32 'int32&'
880 ./make_ret_test.sh ret_coercion_28 unverifiable int32 object
882 ./make_ret_test.sh ret_coercion_29 unverifiable 'unsigned int32' int64
883 ./make_ret_test.sh ret_coercion_30 unverifiable 'unsigned int32' float64
884 ./make_ret_test.sh ret_coercion_31 unverifiable 'unsigned int32' 'unsigned int32&'
885 ./make_ret_test.sh ret_coercion_32 unverifiable 'unsigned int32' object
887 ./make_ret_test.sh ret_coercion_33 unverifiable int64 int32
888 ./make_ret_test.sh ret_coercion_34 unverifiable int64 'native int'
889 ./make_ret_test.sh ret_coercion_35 unverifiable int64 float64
890 ./make_ret_test.sh ret_coercion_36 unverifiable int64 'int64&'
891 ./make_ret_test.sh ret_coercion_37 unverifiable int64 object
893 ./make_ret_test.sh ret_coercion_38 unverifiable 'unsigned int64' int32
894 ./make_ret_test.sh ret_coercion_39 unverifiable 'unsigned int64' 'native int'
895 ./make_ret_test.sh ret_coercion_40 unverifiable 'unsigned int64' float64
896 ./make_ret_test.sh ret_coercion_41 unverifiable 'unsigned int64' 'unsigned int64&'
897 ./make_ret_test.sh ret_coercion_42 unverifiable 'unsigned int64' object
899 ./make_ret_test.sh ret_coercion_43 unverifiable 'native int' int64
900 ./make_ret_test.sh ret_coercion_44 unverifiable 'native int' float64
901 ./make_ret_test.sh ret_coercion_45 unverifiable 'native int' 'native int&'
902 ./make_ret_test.sh ret_coercion_46 unverifiable 'native int' object
904 ./make_ret_test.sh ret_coercion_47 unverifiable 'native unsigned int' int64
905 ./make_ret_test.sh ret_coercion_48 unverifiable 'native unsigned int' float64
906 ./make_ret_test.sh ret_coercion_49 unverifiable 'native unsigned int' 'native unsigned int&'
907 ./make_ret_test.sh ret_coercion_50 unverifiable 'native unsigned int' object
909 ./make_ret_test.sh ret_coercion_51 unverifiable float32 int32
910 ./make_ret_test.sh ret_coercion_52 unverifiable float32 'native int'
911 ./make_ret_test.sh ret_coercion_53 unverifiable float32 int64
912 ./make_ret_test.sh ret_coercion_54 unverifiable float32 'float32&'
913 ./make_ret_test.sh ret_coercion_55 unverifiable float32 object
915 ./make_ret_test.sh ret_coercion_56 unverifiable float64 int32
916 ./make_ret_test.sh ret_coercion_57 unverifiable float64 'native int'
917 ./make_ret_test.sh ret_coercion_58 unverifiable float64 int64
918 ./make_ret_test.sh ret_coercion_59 unverifiable float64 'float64&'
919 ./make_ret_test.sh ret_coercion_60 unverifiable float64 object
921 ./make_ret_test.sh ret_coercion_61 unverifiable object int32
922 ./make_ret_test.sh ret_coercion_62 unverifiable object 'native int'
923 ./make_ret_test.sh ret_coercion_63 unverifiable object int64
924 ./make_ret_test.sh ret_coercion_64 unverifiable object float64
925 ./make_ret_test.sh ret_coercion_65 unverifiable object 'object&'
927 ./make_ret_test.sh ret_coercion_66 unverifiable 'class MyValueType' int32
928 ./make_ret_test.sh ret_coercion_67 unverifiable 'class MyValueType' 'native int'
929 ./make_ret_test.sh ret_coercion_68 unverifiable 'class MyValueType' int64
930 ./make_ret_test.sh ret_coercion_69 unverifiable 'class MyValueType' float64
931 ./make_ret_test.sh ret_coercion_70 unverifiable 'class MyValueType' 'class MyValueType&'
932 ./make_ret_test.sh ret_coercion_71 unverifiable 'class MyValueType' object
934 ./make_ret_test.sh ret_coercion_72 unverifiable 'int32&' int32
935 ./make_ret_test.sh ret_coercion_73 unverifiable 'int32&' 'native int'
936 ./make_ret_test.sh ret_coercion_74 unverifiable 'int32&' int64
937 ./make_ret_test.sh ret_coercion_75 unverifiable 'int32&' float64
938 ./make_ret_test.sh ret_coercion_76 unverifiable 'int32&' object
940 ./make_ret_test.sh ret_coercion_77 unverifiable typedref int32
941 ./make_ret_test.sh ret_coercion_78 unverifiable typedref 'native int'
942 ./make_ret_test.sh ret_coercion_79 unverifiable typedref int64
943 ./make_ret_test.sh ret_coercion_80 unverifiable typedref float64
944 ./make_ret_test.sh ret_coercion_81 unverifiable typedref 'typedref&'
945 ./make_ret_test.sh ret_coercion_82 unverifiable typedref object
948 ./make_ret_test.sh ret_sub_type valid ClassA ClassSubA
949 ./make_ret_test.sh ret_same_type valid ClassA ClassA
950 ./make_ret_test.sh ret_obj_iface valid object InterfaceA
951 ./make_ret_test.sh ret_obj_obj valid object object
952 ./make_ret_test.sh ret_obj_string valid object string
953 ./make_ret_test.sh ret_string_string valid string string
954 ./make_ret_test.sh ret_obj_vector valid object 'int32[]'
955 ./make_ret_test.sh ret_obj_array valid object 'int32[,]'
956 ./make_ret_test.sh ret_obj_generic valid object 'class Template`1<object>'
957 ./make_ret_test.sh ret_obj_value_type unverifiable object 'MyValueType'
958 ./make_ret_test.sh ret_string_value_type unverifiable string 'MyValueType'
959 ./make_ret_test.sh ret_class_value_type unverifiable ClassA 'MyValueType'
961 ./make_ret_test.sh ret_string_string unverifiable string object
962 ./make_ret_test.sh ret_string_string unverifiable 'int32[]' object
964 ./make_ret_test.sh ret_iface_imple valid InterfaceA ImplA
965 ./make_ret_test.sh ret_arrays_same_vector valid 'int32[]' 'int32[]'
966 ./make_ret_test.sh ret_arrays_same_rank valid 'int32[,]' 'int32[,]'
968 ./make_ret_test.sh ret_sub_type_array_covariant valid 'ClassA[]' 'ClassSubA[]'
969 ./make_ret_test.sh ret_same_type_array_covariant valid 'ClassA[]' 'ClassA[]'
970 ./make_ret_test.sh ret_obj_iface_array_covariant valid 'object[]' 'InterfaceA[]'
971 ./make_ret_test.sh ret_iface_imple_array_covariant valid 'InterfaceA[]' 'ImplA[]'
973 ./make_ret_test.sh ret_diff_types unverifiable ClassA ClassB
974 ./make_ret_test.sh ret_class_vale_type unverifiable ClassA MyValueType
975 ./make_ret_test.sh ret_diff_vale_type unverifiable MyValueType2 MyValueType
976 ./make_ret_test.sh ret_value_type_class unverifiable MyValueType ClassA
977 ./make_ret_test.sh ret_super_type unverifiable ClassSubA ClassB
978 ./make_ret_test.sh ret_interfaces unverifiable InterfaceA InterfaceB
979 ./make_ret_test.sh ret_interface_class unverifiable ClassA InterfaceB
981 ./make_ret_test.sh ret_object_type valid object ClassA
982 ./make_ret_test.sh ret_type_object unverifiable ClassA object
985 ./make_ret_test.sh ret_array_diff_rank unverifiable 'int32[]' 'int32[,]'
986 ./make_ret_test.sh ret_array_diff_rank2 unverifiable 'int32[,]' 'int32[]'
987 ./make_ret_test.sh ret_array_diff_rank3 unverifiable 'int32[,,]' 'int32[,]'
988 ./make_ret_test.sh ret_array_not_covar unverifiable 'ClassA[]' 'ClassB[]'
989 ./make_ret_test.sh ret_array_not_covar2 unverifiable 'ClassSubA[]' 'ClassA[]'
990 ./make_ret_test.sh ret_array_not_covar3 unverifiable 'ClassA[]' 'InterfaceA[]'
991 ./make_ret_test.sh ret_array_not_covar4 unverifiable 'ImplA[]' 'InterfaceA[]'
992 ./make_ret_test.sh ret_array_not_covar5 unverifiable 'InterfaceA[]' 'object[]'
996 ./make_ret_test.sh ret_generics_1 valid 'class Template' 'class Template'
997 ./make_ret_test.sh ret_generics_2 valid 'class Template`1<int32>' 'class Template`1<int32>'
998 ./make_ret_test.sh ret_generics_3 valid 'class Template`2<int32,object>' 'class Template`2<int32,object>'
1000 ./make_ret_test.sh ret_generics_4 unverifiable 'class Template' 'class Template`1<object>'
1001 ./make_ret_test.sh ret_generics_5 unverifiable 'class Template`1<object>' 'class Template'
1002 ./make_ret_test.sh ret_generics_6 unverifiable 'class Template`1<object>' 'class Template`1<string>'
1003 ./make_ret_test.sh ret_generics_7 unverifiable 'class Template`1<string>' 'class Template`1<object>'
1004 ./make_ret_test.sh ret_generics_8 unverifiable 'class Template`1<object>' 'class Template`2<object, object>'
1005 ./make_ret_test.sh ret_generics_9 unverifiable 'class Template`2<object, object>' 'class Template`1<object>'
1007 ./make_ret_test.sh ret_generics_10 unverifiable 'class Template`1<int32>' 'class Template`1<int16>'
1008 ./make_ret_test.sh ret_generics_11 unverifiable 'class Template`1<int16>' 'class Template`1<int32>'
1009 ./make_ret_test.sh ret_generics_12 unverifiable 'class Template`1<unsigned int32>' 'class Template`1<int32>'
1010 ./make_ret_test.sh ret_generics_13 unverifiable 'class Template`1<float32>' 'class Template`1<float64>'
1011 ./make_ret_test.sh ret_generics_14 unverifiable 'class Template`1<float64>' 'class Template`1<float32>'
1014 ./make_ret_test.sh ret_generics_15 valid 'class ICovariant`1<object>' 'class ICovariant`1<string>'
1015 ./make_ret_test.sh ret_generics_16 valid 'class ICovariant`1<string>' 'class ICovariant`1<string>'
1016 ./make_ret_test.sh ret_generics_17 unverifiable 'class ICovariant`1<string>' 'class ICovariant`1<object>'
1018 ./make_ret_test.sh ret_generics_18 valid 'class IContravariant`1<string>' 'class IContravariant`1<object>'
1019 ./make_ret_test.sh ret_generics_19 valid 'class IContravariant`1<string>' 'class IContravariant`1<string>'
1020 ./make_ret_test.sh ret_generics_20 unverifiable 'class IContravariant`1<object>' 'class IContravariant`1<string>'
1022 ./make_ret_test.sh ret_generics_21 valid 'class ICovariant`1<ClassA>' 'class ICovariant`1<ClassSubA>'
1023 ./make_ret_test.sh ret_generics_22 valid 'class ICovariant`1<ClassSubA>' 'class ICovariant`1<ClassSubA>'
1024 ./make_ret_test.sh ret_generics_23 unverifiable 'class ICovariant`1<ClassSubA>' 'class ICovariant`1<ClassA>'
1026 ./make_ret_test.sh ret_generics_24 valid 'class IContravariant`1<ClassSubA>' 'class IContravariant`1<ClassA>'
1027 ./make_ret_test.sh ret_generics_25 valid 'class IContravariant`1<ClassSubA>' 'class IContravariant`1<ClassSubA>'
1028 ./make_ret_test.sh ret_generics_26 unverifiable 'class IContravariant`1<ClassA>' 'class IContravariant`1<ClassSubA>'
1031 ./make_ret_test.sh ret_generics_27 valid 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<ClassA, ClassB>'
1032 ./make_ret_test.sh ret_generics_28 valid 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<ClassA, object>'
1033 ./make_ret_test.sh ret_generics_29 valid 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<ClassSubA, ClassB>'
1034 ./make_ret_test.sh ret_generics_30 valid 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<ClassSubA, object>'
1035 ./make_ret_test.sh ret_generics_31 unverifiable 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<object, ClassB>'
1036 ./make_ret_test.sh ret_generics_32 unverifiable 'class Bivariant`2<ClassA, ClassB>' 'class Bivariant`2<object, object>'
1037 ./make_ret_test.sh ret_generics_33 unverifiable 'class Bivariant`2<ClassA, object>' 'class Bivariant`2<object, ClassB>'
1038 ./make_ret_test.sh ret_generics_34 unverifiable 'class Bivariant`2<ClassA, object>' 'class Bivariant`2<ClassA, ClassB>'
1040 #mix parameter types
1041 ./make_ret_test.sh ret_generics_types_1 unverifiable 'class Template`1<int8>' 'class Template`1<unsigned int8>'
1042 ./make_ret_test.sh ret_generics_types_2 unverifiable 'class Template`1<int8>' 'class Template`1<int16>'
1043 ./make_ret_test.sh ret_generics_types_3 unverifiable 'class Template`1<int8>' 'class Template`1<unsigned int16>'
1044 ./make_ret_test.sh ret_generics_types_4 unverifiable 'class Template`1<int8>' 'class Template`1<int32>'
1045 ./make_ret_test.sh ret_generics_types_5 unverifiable 'class Template`1<int8>' 'class Template`1<unsigned int32>'
1046 ./make_ret_test.sh ret_generics_types_6 unverifiable 'class Template`1<int8>' 'class Template`1<int64>'
1047 ./make_ret_test.sh ret_generics_types_7 unverifiable 'class Template`1<int8>' 'class Template`1<unsigned int64>'
1048 ./make_ret_test.sh ret_generics_types_8 unverifiable 'class Template`1<int8>' 'class Template`1<float32>'
1049 ./make_ret_test.sh ret_generics_types_9 unverifiable 'class Template`1<int8>' 'class Template`1<float64>'
1050 ./make_ret_test.sh ret_generics_types_10 unverifiable 'class Template`1<int8>' 'class Template`1<bool>'
1052 ./make_ret_test.sh ret_generics_types_11 unverifiable 'class Template`1<int8>' 'class Template`1<native int>'
1053 ./make_ret_test.sh ret_generics_types_12 unverifiable 'class Template`1<int8>' 'class Template`1<native unsigned int>'
1054 ./make_ret_test.sh ret_generics_types_13 unverifiable 'class Template`1<int8>' 'class Template`1<int32 *>'
1058 ./make_ret_test.sh ret_generics_inheritante_1 valid 'class Base`1<int32>' 'class SubClass1`1<int32>'
1059 ./make_ret_test.sh ret_generics_inheritante_2 valid 'class SubClass1`1<int32>' 'class SubClass1`1<int32>'
1060 ./make_ret_test.sh ret_generics_inheritante_3 unverifiable 'class SubClass1`1<int32>' 'class Base`1<int32>'
1061 ./make_ret_test.sh ret_generics_inheritante_4 unverifiable 'class Base`1<int32>' 'class SubClass1`1<float32>'
1062 ./make_ret_test.sh ret_generics_inheritante_5 valid 'class Base`1<object>' 'class SubClass1`1<object>'
1064 ./make_ret_test.sh ret_generics_inheritante_6 valid 'class BaseBase`2<int32, object>' 'class SubClass1`1<object>'
1065 ./make_ret_test.sh ret_generics_inheritante_7 valid 'class BaseBase`2<int32, object>' 'class Base`1<object>'
1067 ./make_ret_test.sh ret_generics_inheritante_8 unverifiable 'class BaseBase`2<int64, object>' 'class Base`1<object>'
1068 ./make_ret_test.sh ret_generics_inheritante_9 unverifiable 'class BaseBase`2<int64, object>' 'class SubClass1`1<object>'
1069 ./make_ret_test.sh ret_generics_inheritante_10 unverifiable 'class BaseBase`2<int32, object>' 'class SubClass1`1<string>'
1073 ./make_ret_test.sh ret_generics_inheritante_12 valid 'class Interface`1<int32>' 'class InterfaceImpl`1<int32>'
1074 ./make_ret_test.sh ret_generics_inheritante_13 valid 'class InterfaceImpl`1<int32>' 'class InterfaceImpl`1<int32>'
1075 ./make_ret_test.sh ret_generics_inheritante_14 unverifiable 'class InterfaceImpl`1<int32>' 'class Interface`1<int32>'
1076 ./make_ret_test.sh ret_generics_inheritante_15 unverifiable 'class Interface`1<int32>' 'class InterfaceImpl`1<float32>'
1077 ./make_ret_test.sh ret_generics_inheritante_16 valid 'class Interface`1<object>' 'class InterfaceImpl`1<object>'
1080 #mix variance with inheritance
1081 #only interfaces or delegates can have covariance
1083 #mix variance with interfaces
1085 ./make_ret_test.sh ret_generics_inheritante_28 valid 'class ICovariant`1<object>' 'class CovariantImpl`1<string>'
1086 ./make_ret_test.sh ret_generics_inheritante_29 valid 'class ICovariant`1<string>' 'class CovariantImpl`1<string>'
1087 ./make_ret_test.sh ret_generics_inheritante_30 unverifiable 'class ICovariant`1<string>' 'class CovariantImpl`1<object>'
1089 ./make_ret_test.sh ret_generics_inheritante_31 valid 'class IContravariant`1<string>' 'class ContravariantImpl`1<object>'
1090 ./make_ret_test.sh ret_generics_inheritante_32 valid 'class IContravariant`1<string>' 'class ContravariantImpl`1<string>'
1091 ./make_ret_test.sh ret_generics_inheritante_33 unverifiable 'class IContravariant`1<object>' 'class ContravariantImpl`1<string>'
1093 ./make_ret_test.sh ret_generics_inheritante_34 valid 'class ICovariant`1<ClassA>' 'class CovariantImpl`1<ClassSubA>'
1094 ./make_ret_test.sh ret_generics_inheritante_35 valid 'class ICovariant`1<ClassSubA>' 'class CovariantImpl`1<ClassSubA>'
1095 ./make_ret_test.sh ret_generics_inheritante_36 unverifiable 'class ICovariant`1<ClassSubA>' 'class CovariantImpl`1<ClassA>'
1097 ./make_ret_test.sh ret_generics_inheritante_37 valid 'class IContravariant`1<ClassSubA>' 'class ContravariantImpl`1<ClassA>'
1098 ./make_ret_test.sh ret_generics_inheritante_38 valid 'class IContravariant`1<ClassSubA>' 'class ContravariantImpl`1<ClassSubA>'
1099 ./make_ret_test.sh ret_generics_inheritante_39 unverifiable 'class IContravariant`1<ClassA>' 'class ContravariantImpl`1<ClassSubA>'
1102 #mix variance with arrays
1104 ./make_ret_test.sh ret_generics_arrays_1 valid 'class ICovariant`1<object>' 'class ICovariant`1<object[]>'
1105 ./make_ret_test.sh ret_generics_arrays_2 valid 'class ICovariant`1<object>' 'class ICovariant`1<int32[]>'
1106 ./make_ret_test.sh ret_generics_arrays_3 valid 'class ICovariant`1<object>' 'class ICovariant`1<int32[,]>'
1107 ./make_ret_test.sh ret_generics_arrays_4 valid 'class ICovariant`1<object>' 'class ICovariant`1<string[]>'
1108 ./make_ret_test.sh ret_generics_arrays_5 valid 'class ICovariant`1<object[]>' 'class ICovariant`1<string[]>'
1109 ./make_ret_test.sh ret_generics_arrays_6 valid 'class ICovariant`1<object[]>' 'class ICovariant`1<ClassA[]>'
1110 ./make_ret_test.sh ret_generics_arrays_7 valid 'class ICovariant`1<ClassA[]>' 'class ICovariant`1<ClassSubA[]>'
1111 ./make_ret_test.sh ret_generics_arrays_8 valid 'class ICovariant`1<InterfaceA[]>' 'class ICovariant`1<ImplA[]>'
1112 ./make_ret_test.sh ret_generics_arrays_9 valid 'class ICovariant`1<object[,]>' 'class ICovariant`1<string[,]>'
1113 ./make_ret_test.sh ret_generics_arrays_10 valid 'class ICovariant`1<ClassA[,]>' 'class ICovariant`1<ClassSubA[,]>'
1115 ./make_ret_test.sh ret_generics_arrays_1_b valid 'class ICovariant`1<object>' 'class CovariantImpl`1<object[]>'
1116 ./make_ret_test.sh ret_generics_arrays_2_b valid 'class ICovariant`1<object>' 'class CovariantImpl`1<int32[]>'
1117 ./make_ret_test.sh ret_generics_arrays_3_b valid 'class ICovariant`1<object>' 'class CovariantImpl`1<int32[,]>'
1118 ./make_ret_test.sh ret_generics_arrays_4_b valid 'class ICovariant`1<object>' 'class ICovariant`1<string[]>'
1119 ./make_ret_test.sh ret_generics_arrays_5_b valid 'class ICovariant`1<object[]>' 'class CovariantImpl`1<string[]>'
1120 ./make_ret_test.sh ret_generics_arrays_6_b valid 'class ICovariant`1<object[]>' 'class CovariantImpl`1<ClassA[]>'
1121 ./make_ret_test.sh ret_generics_arrays_7_b valid 'class ICovariant`1<ClassA[]>' 'class CovariantImpl`1<ClassSubA[]>'
1122 ./make_ret_test.sh ret_generics_arrays_8_b valid 'class ICovariant`1<InterfaceA[]>' 'class CovariantImpl`1<ImplA[]>'
1123 ./make_ret_test.sh ret_generics_arrays_9_b valid 'class ICovariant`1<object[,]>' 'class CovariantImpl`1<string[,]>'
1124 ./make_ret_test.sh ret_generics_arrays_10_b valid 'class ICovariant`1<ClassA[,]>' 'class CovariantImpl`1<ClassSubA[,]>'
1126 ./make_ret_test.sh ret_generics_arrays_11 valid 'class IContravariant`1<object[]>' 'class IContravariant`1<object>'
1127 ./make_ret_test.sh ret_generics_arrays_12 valid 'class IContravariant`1<int32[]>' 'class IContravariant`1<object>'
1128 ./make_ret_test.sh ret_generics_arrays_13 valid 'class IContravariant`1<int32[,]>' 'class IContravariant`1<object>'
1129 ./make_ret_test.sh ret_generics_arrays_14 valid 'class IContravariant`1<string[]>' 'class IContravariant`1<object>'
1130 ./make_ret_test.sh ret_generics_arrays_15 valid 'class IContravariant`1<string[]>' 'class IContravariant`1<object[]>'
1131 ./make_ret_test.sh ret_generics_arrays_16 valid 'class IContravariant`1<ClassA[]>' 'class IContravariant`1<object[]>'
1132 ./make_ret_test.sh ret_generics_arrays_17 valid 'class IContravariant`1<ClassSubA[]>' 'class IContravariant`1<ClassA[]>'
1133 ./make_ret_test.sh ret_generics_arrays_18 valid 'class IContravariant`1<ImplA[]>' 'class IContravariant`1<InterfaceA[]>'
1134 ./make_ret_test.sh ret_generics_arrays_19 valid 'class IContravariant`1<string[,]>' 'class IContravariant`1<object[,]>'
1135 ./make_ret_test.sh ret_generics_arrays_20 valid 'class IContravariant`1<ClassSubA[,]>' 'class IContravariant`1<ClassA[,]>'
1137 ./make_ret_test.sh ret_generics_arrays_11_b valid 'class IContravariant`1<object[]>' 'class ContravariantImpl`1<object>'
1138 ./make_ret_test.sh ret_generics_arrays_12_b valid 'class IContravariant`1<int32[]>' 'class ContravariantImpl`1<object>'
1139 ./make_ret_test.sh ret_generics_arrays_13_b valid 'class IContravariant`1<int32[,]>' 'class ContravariantImpl`1<object>'
1140 ./make_ret_test.sh ret_generics_arrays_14_b valid 'class IContravariant`1<string[]>' 'class ContravariantImpl`1<object>'
1141 ./make_ret_test.sh ret_generics_arrays_15_b valid 'class IContravariant`1<string[]>' 'class ContravariantImpl`1<object[]>'
1142 ./make_ret_test.sh ret_generics_arrays_16_b valid 'class IContravariant`1<ClassA[]>' 'class ContravariantImpl`1<object[]>'
1143 ./make_ret_test.sh ret_generics_arrays_17_b valid 'class IContravariant`1<ClassSubA[]>' 'class ContravariantImpl`1<ClassA[]>'
1144 ./make_ret_test.sh ret_generics_arrays_18_b valid 'class IContravariant`1<ImplA[]>' 'class ContravariantImpl`1<InterfaceA[]>'
1145 ./make_ret_test.sh ret_generics_arrays_19_b valid 'class IContravariant`1<string[,]>' 'class ContravariantImpl`1<object[,]>'
1146 ./make_ret_test.sh ret_generics_arrays_20_b valid 'class IContravariant`1<ClassSubA[,]>' 'class ContravariantImpl`1<ClassA[,]>'
1148 ./make_ret_test.sh ret_generics_arrays_21 unverifiable 'class ICovariant`1<int32[]>' 'class ICovariant`1<object>'
1149 ./make_ret_test.sh ret_generics_arrays_22 unverifiable 'class ICovariant`1<int32[]>' 'class ICovariant`1<object[]>'
1150 ./make_ret_test.sh ret_generics_arrays_23 unverifiable 'class ICovariant`1<string[]>' 'class ICovariant`1<object[]>'
1151 ./make_ret_test.sh ret_generics_arrays_24 unverifiable 'class ICovariant`1<ClassSubA[]>' 'class ICovariant`1<ClassA[]>'
1152 ./make_ret_test.sh ret_generics_arrays_25 unverifiable 'class ICovariant`1<int32[]>' 'class ICovariant`1<int32[,]>'
1153 ./make_ret_test.sh ret_generics_arrays_26 unverifiable 'class ICovariant`1<ImplA[]>' 'class ICovariant`1<InterfaceA[]>'
1155 ./make_ret_test.sh ret_generics_arrays_27 unverifiable 'class IContravariant`1<object>' 'class IContravariant`1<int32[]>'
1156 ./make_ret_test.sh ret_generics_arrays_28 unverifiable 'class IContravariant`1<object[]>' 'class IContravariant`1<int32[]>'
1157 ./make_ret_test.sh ret_generics_arrays_29 unverifiable 'class IContravariant`1<object[]>' 'class IContravariant`1<string[]>'
1158 ./make_ret_test.sh ret_generics_arrays_30 unverifiable 'class IContravariant`1<ClassA[]>' 'class IContravariant`1<ClassSubA[]>'
1159 ./make_ret_test.sh ret_generics_arrays_31 unverifiable 'class IContravariant`1<int32[,]>' 'class IContravariant`1<int32[]>'
1160 ./make_ret_test.sh ret_generics_arrays_32 unverifiable 'class IContravariant`1<InterfaceA[]>' 'class IContravariant`1<ImplA[]>'
1163 #generic with value types
1165 ./make_ret_test.sh ret_generics_vt_1 valid 'class Template`1<MyValueType>' 'class Template`1<MyValueType>'
1166 ./make_ret_test.sh ret_generics_vt_2 unverifiable 'class Template`1<MyValueType>' 'class Template`1<MyValueType2>'
1167 ./make_ret_test.sh ret_generics_vt_3 unverifiable 'class ICovariant`1<MyValueType>' 'class ICovariant`1<MyValueType2>'
1168 ./make_ret_test.sh ret_generics_vt_4 unverifiable 'class ICovariant`1<object>' 'class ICovariant`1<MyValueType2>'
1171 #mix variance and generic compatibility with all kinds of types valid for a generic parameter (hellish task - huge task)
1172 #test with composite generics ( Foo<Bar<int>> )
1174 #test variance with delegates
1179 #the verifier must check if the generic instantiation is valid
1181 for OP in ldarg ldloc
1188 ARGS_2='int32 V, int32 V1'
1190 CALL_2='ldc.i4.0\n\tldc.i4.0'
1191 SIG_2='int32, int32'
1193 ARGS_3='int32 V, int32 V1, int32 V1'
1195 CALL_3='ldc.i4.0\n\tldc.i4.0\n\tldc.i4.0'
1196 SIG_3='int32, int32, int32'
1198 ARGS_4='int32 V, int32 V1, int32 V1, int32 V1'
1200 CALL_4='ldc.i4.0\n\tldc.i4.0\n\tldc.i4.0\n\tldc.i4.0'
1201 SIG_4='int32, int32, int32, int32'
1202 MAX_PARAM_RESULT="unverifiable"
1203 POPS="pop\npop\npop\npop\npop\npop\npop\npop\n"
1205 if [ "$OP" == "ldloc" ]; then
1206 MAX_PARAM_RESULT="invalid"
1229 ./make_load_test.sh ${OP}0_max_params "${MAX_PARAM_RESULT}" "${OP}.0" '' '' '' ''
1230 ./make_load_test.sh ${OP}1_max_params "${MAX_PARAM_RESULT}" "${OP}.1" '' '' '' ''
1231 ./make_load_test.sh ${OP}2_max_params "${MAX_PARAM_RESULT}" "${OP}.2" '' '' '' ''
1232 ./make_load_test.sh ${OP}3_max_params "${MAX_PARAM_RESULT}" "${OP}.3" '' '' '' ''
1234 ./make_load_test.sh ${OP}1_1_max_params "${MAX_PARAM_RESULT}" "${OP}.1" "${ARGS_1}" "${LOCALS_1}" "${CALL_1}" "${SIG_1}"
1235 ./make_load_test.sh ${OP}2_1_max_params "${MAX_PARAM_RESULT}" "${OP}.2" "${ARGS_1}" "${LOCALS_1}" "${CALL_1}" "${SIG_1}"
1236 ./make_load_test.sh ${OP}3_1_max_params "${MAX_PARAM_RESULT}" "${OP}.3" "${ARGS_1}" "${LOCALS_1}" "${CALL_1}" "${SIG_1}"
1238 ./make_load_test.sh ${OP}2_2_max_params "${MAX_PARAM_RESULT}" "${OP}.2" "${ARGS_2}" "${LOCALS_2}" "${CALL_2}" "${SIG_2}"
1239 ./make_load_test.sh ${OP}3_2_max_params "${MAX_PARAM_RESULT}" "${OP}.3" "${ARGS_2}" "${LOCALS_2}" "${CALL_2}" "${SIG_2}"
1241 ./make_load_test.sh ${OP}3_3_max_params "${MAX_PARAM_RESULT}" "${OP}.3" "${ARGS_3}" "${LOCALS_3}" "${CALL_3}" "${SIG_3}"
1243 ./make_load_test.sh ${OP}0_max_params valid "${OP}.0" "${ARGS_1}" "${LOCALS_1}" "${CALL_1}" "${SIG_1}"
1244 ./make_load_test.sh ${OP}1_max_params valid "${OP}.1" "${ARGS_2}" "${LOCALS_2}" "${CALL_2}" "${SIG_2}"
1245 ./make_load_test.sh ${OP}2_max_params valid "${OP}.2" "${ARGS_3}" "${LOCALS_3}" "${CALL_3}" "${SIG_3}"
1246 ./make_load_test.sh ${OP}3_max_params valid "${OP}.3" "${ARGS_4}" "${LOCALS_4}" "${CALL_4}" "${SIG_4}"
1248 ./make_load_test.sh ${OP}0_stack_overflow invalid "${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${OP}.0\n${POPS}" "${ARGS_4}" "${LOCALS_4}" "${CALL_4}" "${SIG_4}"
1249 ./make_load_test.sh ${OP}1_stack_overflow invalid "${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${OP}.1\n${POPS}" "${ARGS_4}" "${LOCALS_4}" "${CALL_4}" "${SIG_4}"
1250 ./make_load_test.sh ${OP}2_stack_overflow invalid "${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${OP}.2\n${POPS}" "${ARGS_4}" "${LOCALS_4}" "${CALL_4}" "${SIG_4}"
1251 ./make_load_test.sh ${OP}3_stack_overflow invalid "${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${OP}.3\n${POPS}" "${ARGS_4}" "${LOCALS_4}" "${CALL_4}" "${SIG_4}"
1254 #Test if the values used for brtrue and brfalse are valid
1256 for OP in brfalse brtrue 'brfalse.s' 'brtrue.s'
1258 ./make_bool_branch_test.sh boolean_branch_${I}_1 valid ${OP} int8
1259 ./make_bool_branch_test.sh boolean_branch_${I}_2 valid ${OP} int16
1260 ./make_bool_branch_test.sh boolean_branch_${I}_3 valid ${OP} int32
1261 ./make_bool_branch_test.sh boolean_branch_${I}_4 valid ${OP} int64
1262 ./make_bool_branch_test.sh boolean_branch_${I}_5 valid ${OP} 'native int'
1264 #unmanaged pointers are not veriable types, all ops on unmanaged pointers are unverifiable
1265 ./make_bool_branch_test.sh boolean_branch_${I}_6 unverifiable ${OP} 'int32*'
1266 ./make_bool_branch_test.sh boolean_branch_${I}_8 unverifiable ${OP} 'method int32 *(int32)'
1268 ./make_bool_branch_test.sh boolean_branch_${I}_7 valid ${OP} 'int32&'
1269 ./make_bool_branch_test.sh boolean_branch_${I}_9 valid ${OP} object
1270 ./make_bool_branch_test.sh boolean_branch_${I}_10 valid ${OP} string
1271 ./make_bool_branch_test.sh boolean_branch_${I}_11 valid ${OP} 'ClassA'
1272 ./make_bool_branch_test.sh boolean_branch_${I}_12 valid ${OP} 'int32[]'
1273 ./make_bool_branch_test.sh boolean_branch_${I}_13 valid ${OP} 'int32[,,]'
1274 ./make_bool_branch_test.sh boolean_branch_${I}_14 valid ${OP} 'class Template`1<object>'
1275 ./make_bool_branch_test.sh boolean_branch_${I}_15 valid ${OP} 'class Template`1<object>[]'
1276 ./make_bool_branch_test.sh boolean_branch_${I}_16 valid ${OP} 'class Template`1<object>[,,]'
1278 ./make_bool_branch_test.sh boolean_branch_${I}_17 unverifiable ${OP} float32
1279 ./make_bool_branch_test.sh boolean_branch_${I}_18 unverifiable ${OP} float64
1280 ./make_bool_branch_test.sh boolean_branch_${I}_19 unverifiable ${OP} 'class MyValueType'
1281 ./make_bool_branch_test.sh boolean_branch_${I}_20 unverifiable ${OP} 'class ValueTypeTemplate`1<object>'
1285 #tests for field loading
1287 for OP in 'ldfld' 'ldflda'
1289 ./make_field_store_test.sh field_store_${I}_1 unverifiable "${OP} int32 ClassA::fld" int32 int32
1290 ./make_field_store_test.sh field_store_${I}_2 unverifiable "${OP} int32 ClassA::fld" int32 'class ClassB' yes
1291 ./make_field_store_test.sh field_store_${I}_3 unverifiable "${OP} int32 ClassA::fld" int32 object yes
1292 ./make_field_store_test.sh field_store_${I}_4 unverifiable "${OP} int32 ClassA::fld" int32 'class MyValueType'
1293 ./make_field_store_test.sh field_store_${I}_5 valid "${OP} int32 ClassA::fld" int32 'class ClassA' yes
1294 ./make_field_store_test.sh field_store_${I}_6 valid "${OP} int32 ClassA::fld" int32 'class SubClass' yes
1295 #ldfld and ldflda works diferent with value objects, you cannot take the address of a value-object on the stack
1296 #./make_field_store_test.sh field_store_${I}_7 valid "${OP} int32 MyValueType::fld" int32 'class MyValueType'
1297 #Not usefull as it throws NRE
1298 #./make_field_store_test.sh field_store_${I}_8 valid "${OP} int32 MyValueType::fld" int32 'class MyValueType \&'
1299 ./make_field_store_test.sh field_store_${I}_9 unverifiable "${OP} int32 MyValueType::fld" int32 'native int'
1300 ./make_field_store_test.sh field_store_${I}_10 unverifiable "${OP} int32 MyValueType::fld" int32 'class MyValueType *'
1301 ./make_field_store_test.sh field_store_${I}_11 unverifiable "${OP} int32 ClassA::fld" int32 'class ClassA *'
1302 ./make_field_store_test.sh field_store_${I}_12 valid "${OP} int32 Overlapped::field1" int32 'class Overlapped' yes
1303 ./make_field_store_test.sh field_store_${I}_13 unverifiable "${OP} ClassA Overlapped::field1" 'class ClassA' 'class Overlapped' yes
1304 ./make_field_store_test.sh field_store_${I}_14 valid "${OP} int32 Overlapped::field1" int32 'class SubOverlapped' yes
1305 ./make_field_store_test.sh field_store_${I}_15 unverifiable "${OP} ClassA Overlapped::field1" 'class ClassA' 'class SubOverlapped' yes
1306 ./make_field_store_test.sh field_store_${I}_16 valid "${OP} int32 SubOverlapped::field6" int32 'class SubOverlapped' yes
1307 ./make_field_store_test.sh field_store_${I}_17 unverifiable "${OP} ClassA SubOverlapped::field6" 'class ClassA' 'class SubOverlapped' yes
1308 ./make_field_store_test.sh field_store_${I}_18 valid "${OP} int32 Overlapped::field10" int32 'class Overlapped' yes
1309 ./make_field_store_test.sh field_store_${I}_20 unverifiable "${OP} int32 Overlapped::field10" 'class ClassA' 'class Overlapped' yes
1311 ./make_field_store_test.sh field_store_${I}_22 invalid "${OP} int32 ClassA::unknown_field" 'class ClassA' 'class ClassA' yes
1312 ./make_field_store_test.sh field_store_${I}_23 unverifiable "${OP} int32 ClassA::const_field" int32 'int32 \&'
1314 ./make_field_store_test.sh field_store_${I}_24 valid "${OP} int32 ClassA::sfld" int32 'class ClassA' yes
1318 ./make_field_store_test.sh field_store_2_25 unverifiable 'ldflda int32 ClassA::const_field' int32 'class ClassA'
1320 #tests form static field loading
1322 for OP in 'ldsfld' 'ldsflda'
1325 ./make_field_store_test.sh static_field_store_${I}_1 invalid "${OP} int32 ClassA::unknown_field\n\tpop" 'class ClassA' 'class ClassA'
1327 ./make_field_store_test.sh static_field_store_${I}_2 invalid "${OP} int32 ClassA::fld\n\tpop" 'class ClassA' 'class ClassA'
1329 ./make_field_store_test.sh static_field_store_${I}_3 valid "${OP} ClassA ClassA::sfld\n\tpop" 'class ClassA' 'class ClassA'
1333 ./make_field_store_test.sh static_field_store_2_25 unverifiable 'ldsflda int32 ClassA::st_const_field\n\tpop' int32 'class ClassA'
1335 ./make_field_valuetype_test.sh value_type_field_load_1 valid 'ldfld int32 MyValueType::fld' 'ldloc.0'
1336 ./make_field_valuetype_test.sh value_type_field_load_2 unverifiable 'ldflda int32 MyValueType::fld' 'ldloc.0'
1337 ./make_field_valuetype_test.sh value_type_field_load_3 valid 'ldfld int32 MyValueType::fld' 'ldloca.s 0'
1338 ./make_field_valuetype_test.sh value_type_field_load_4 valid 'ldflda int32 MyValueType::fld' 'ldloca.s 0'
1340 ./make_field_valuetype_test.sh value_type_field_load_1 valid 'ldfld int32 MyValueType::fld' 'ldloc.1'
1341 ./make_field_valuetype_test.sh value_type_field_load_2 valid 'ldflda int32 MyValueType::fld' 'ldloc.1'
1342 ./make_field_valuetype_test.sh value_type_field_load_3 unverifiable 'ldfld int32 MyValueType::fld' 'ldloca.s 1'
1343 ./make_field_valuetype_test.sh value_type_field_load_4 unverifiable 'ldflda int32 MyValueType::fld' 'ldloca.s 1'
1347 #Tests for access checks
1348 #TODO tests with static calls
1349 #TODO tests with multiple assemblies, involving friend assemblies, with and without matching public key
1352 for OP in "callvirt instance int32 class Owner\/Nested::Target()" "call instance int32 class Owner\/Nested::Target()" "ldc.i4.0\n\t\tstfld int32 Owner\/Nested::fld\n\t\tldc.i4.0" "ldc.i4.0\n\t\tstsfld int32 Owner\/Nested::sfld" "ldsfld int32 Owner\/Nested::sfld\n\n\tpop" "ldfld int32 Owner\/Nested::fld" "ldsflda int32 Owner\/Nested::sfld\n\n\tpop" "ldflda int32 Owner\/Nested::fld"
1354 ./make_nested_access_test.sh nested_access_check_1_${I} valid "$OP" public public no
1355 ./make_nested_access_test.sh nested_access_check_2_${I} valid "$OP" public public yes
1356 ./make_nested_access_test.sh nested_access_check_3_${I} unverifiable "$OP" public private no
1357 ./make_nested_access_test.sh nested_access_check_4_${I} unverifiable "$OP" public private yes
1358 ./make_nested_access_test.sh nested_access_check_5_${I} unverifiable "$OP" public family no
1359 ./make_nested_access_test.sh nested_access_check_6_${I} unverifiable "$OP" public family yes
1360 ./make_nested_access_test.sh nested_access_check_7_${I} valid "$OP" public assembly no
1361 ./make_nested_access_test.sh nested_access_check_8_${I} valid "$OP" public assembly yes
1362 ./make_nested_access_test.sh nested_access_check_9_${I} unverifiable "$OP" public famandassem no
1363 ./make_nested_access_test.sh nested_access_check_a_${I} unverifiable "$OP" public famandassem yes
1364 ./make_nested_access_test.sh nested_access_check_b_${I} valid "$OP" public famorassem no
1365 ./make_nested_access_test.sh nested_access_check_c_${I} valid "$OP" public famorassem yes
1367 ./make_nested_access_test.sh nested_access_check_11_${I} unverifiable "$OP" private public no
1368 ./make_nested_access_test.sh nested_access_check_12_${I} unverifiable "$OP" private public yes
1369 ./make_nested_access_test.sh nested_access_check_13_${I} unverifiable "$OP" private private no
1370 ./make_nested_access_test.sh nested_access_check_14_${I} unverifiable "$OP" private private yes
1371 ./make_nested_access_test.sh nested_access_check_15_${I} unverifiable "$OP" private family no
1372 ./make_nested_access_test.sh nested_access_check_16_${I} unverifiable "$OP" private family yes
1373 ./make_nested_access_test.sh nested_access_check_17_${I} unverifiable "$OP" private assembly no
1374 ./make_nested_access_test.sh nested_access_check_18_${I} unverifiable "$OP" private assembly yes
1375 ./make_nested_access_test.sh nested_access_check_19_${I} unverifiable "$OP" private famandassem no
1376 ./make_nested_access_test.sh nested_access_check_1a_${I} unverifiable "$OP" private famandassem yes
1377 ./make_nested_access_test.sh nested_access_check_1b_${I} unverifiable "$OP" private famorassem no
1378 ./make_nested_access_test.sh nested_access_check_1c_${I} unverifiable "$OP" private famorassem yes
1380 ./make_nested_access_test.sh nested_access_check_21_${I} unverifiable "$OP" family public no
1381 ./make_nested_access_test.sh nested_access_check_22_${I} valid "$OP" family public yes
1382 ./make_nested_access_test.sh nested_access_check_23_${I} unverifiable "$OP" family private no
1383 ./make_nested_access_test.sh nested_access_check_24_${I} unverifiable "$OP" family private yes
1384 ./make_nested_access_test.sh nested_access_check_25_${I} unverifiable "$OP" family family no
1385 ./make_nested_access_test.sh nested_access_check_26_${I} unverifiable "$OP" family family yes
1386 ./make_nested_access_test.sh nested_access_check_27_${I} unverifiable "$OP" family assembly no
1387 ./make_nested_access_test.sh nested_access_check_28_${I} valid "$OP" family assembly yes
1388 ./make_nested_access_test.sh nested_access_check_29_${I} unverifiable "$OP" family famandassem no
1389 ./make_nested_access_test.sh nested_access_check_2a_${I} unverifiable "$OP" family famandassem yes
1390 ./make_nested_access_test.sh nested_access_check_2b_${I} unverifiable "$OP" family famorassem no
1391 ./make_nested_access_test.sh nested_access_check_2c_${I} valid "$OP" family famorassem yes
1393 ./make_nested_access_test.sh nested_access_check_31_${I} valid "$OP" assembly public no
1394 ./make_nested_access_test.sh nested_access_check_32_${I} valid "$OP" assembly public yes
1395 ./make_nested_access_test.sh nested_access_check_33_${I} unverifiable "$OP" assembly private no
1396 ./make_nested_access_test.sh nested_access_check_34_${I} unverifiable "$OP" assembly private yes
1397 ./make_nested_access_test.sh nested_access_check_35_${I} unverifiable "$OP" assembly family no
1398 ./make_nested_access_test.sh nested_access_check_36_${I} unverifiable "$OP" assembly family yes
1399 ./make_nested_access_test.sh nested_access_check_37_${I} valid "$OP" assembly assembly no
1400 ./make_nested_access_test.sh nested_access_check_38_${I} valid "$OP" assembly assembly yes
1401 ./make_nested_access_test.sh nested_access_check_39_${I} unverifiable "$OP" assembly famandassem no
1402 ./make_nested_access_test.sh nested_access_check_3a_${I} unverifiable "$OP" assembly famandassem yes
1403 ./make_nested_access_test.sh nested_access_check_3b_${I} valid "$OP" assembly famorassem no
1404 ./make_nested_access_test.sh nested_access_check_3c_${I} valid "$OP" assembly famorassem yes
1406 ./make_nested_access_test.sh nested_access_check_41_${I} unverifiable "$OP" famandassem public no
1407 ./make_nested_access_test.sh nested_access_check_42_${I} valid "$OP" famandassem public yes
1408 ./make_nested_access_test.sh nested_access_check_43_${I} unverifiable "$OP" famandassem private no
1409 ./make_nested_access_test.sh nested_access_check_44_${I} unverifiable "$OP" famandassem private yes
1410 ./make_nested_access_test.sh nested_access_check_45_${I} unverifiable "$OP" famandassem family no
1411 ./make_nested_access_test.sh nested_access_check_46_${I} unverifiable "$OP" famandassem family yes
1412 ./make_nested_access_test.sh nested_access_check_47_${I} unverifiable "$OP" famandassem assembly no
1413 ./make_nested_access_test.sh nested_access_check_48_${I} valid "$OP" famandassem assembly yes
1414 ./make_nested_access_test.sh nested_access_check_49_${I} unverifiable "$OP" famandassem famandassem no
1415 ./make_nested_access_test.sh nested_access_check_4a_${I} unverifiable "$OP" famandassem famandassem yes
1416 ./make_nested_access_test.sh nested_access_check_4b_${I} unverifiable "$OP" famandassem famorassem no
1417 ./make_nested_access_test.sh nested_access_check_4c_${I} valid "$OP" famandassem famorassem yes
1419 ./make_nested_access_test.sh nested_access_check_51_${I} valid "$OP" famorassem public no
1420 ./make_nested_access_test.sh nested_access_check_52_${I} valid "$OP" famorassem public yes
1421 ./make_nested_access_test.sh nested_access_check_53_${I} unverifiable "$OP" famorassem private no
1422 ./make_nested_access_test.sh nested_access_check_54_${I} unverifiable "$OP" famorassem private yes
1423 ./make_nested_access_test.sh nested_access_check_55_${I} unverifiable "$OP" famorassem family no
1424 ./make_nested_access_test.sh nested_access_check_56_${I} unverifiable "$OP" famorassem family yes
1425 ./make_nested_access_test.sh nested_access_check_57_${I} valid "$OP" famorassem assembly no
1426 ./make_nested_access_test.sh nested_access_check_58_${I} valid "$OP" famorassem assembly yes
1427 ./make_nested_access_test.sh nested_access_check_59_${I} unverifiable "$OP" famorassem famandassem no
1428 ./make_nested_access_test.sh nested_access_check_5a_${I} unverifiable "$OP" famorassem famandassem yes
1429 ./make_nested_access_test.sh nested_access_check_5b_${I} valid "$OP" famorassem famorassem no
1430 ./make_nested_access_test.sh nested_access_check_5c_${I} valid "$OP" famorassem famorassem yes
1434 #Tests for accessing an owned nested type
1436 for OP in "callvirt instance int32 class Outer\/Inner::Target()" "call instance int32 class Outer\/Inner::Target()" "ldc.i4.0\n\t\tstfld int32 Outer\/Inner::fld\n\t\tldc.i4.0" "ldc.i4.0\n\t\tstsfld int32 Outer\/Inner::sfld" "ldsfld int32 Outer\/Inner::sfld\n\n\tpop" "ldfld int32 Outer\/Inner::fld" "ldsflda int32 Outer\/Inner::sfld\n\n\tpop" "ldflda int32 Outer\/Inner::fld"
1438 ./make_self_nested_test.sh self_nested_access_check_1_${I} valid "$OP" public public
1439 ./make_self_nested_test.sh self_nested_access_check_2_${I} unverifiable "$OP" public private
1440 ./make_self_nested_test.sh self_nested_access_check_3_${I} unverifiable "$OP" public family
1441 ./make_self_nested_test.sh self_nested_access_check_4_${I} valid "$OP" public assembly
1442 ./make_self_nested_test.sh self_nested_access_check_5_${I} unverifiable "$OP" public famandassem
1443 ./make_self_nested_test.sh self_nested_access_check_6_${I} valid "$OP" public famorassem
1445 ./make_self_nested_test.sh self_nested_access_check_7_${I} valid "$OP" private public
1446 ./make_self_nested_test.sh self_nested_access_check_8_${I} unverifiable "$OP" private private
1447 ./make_self_nested_test.sh self_nested_access_check_9_${I} unverifiable "$OP" private family
1448 ./make_self_nested_test.sh self_nested_access_check_10_${I} valid "$OP" private assembly
1449 ./make_self_nested_test.sh self_nested_access_check_11_${I} unverifiable "$OP" private famandassem
1450 ./make_self_nested_test.sh self_nested_access_check_12_${I} valid "$OP" private famorassem
1452 ./make_self_nested_test.sh self_nested_access_check_13_${I} valid "$OP" family public
1453 ./make_self_nested_test.sh self_nested_access_check_14_${I} unverifiable "$OP" family private
1454 ./make_self_nested_test.sh self_nested_access_check_15_${I} unverifiable "$OP" family family
1455 ./make_self_nested_test.sh self_nested_access_check_16_${I} valid "$OP" family assembly
1456 ./make_self_nested_test.sh self_nested_access_check_17_${I} unverifiable "$OP" family famandassem
1457 ./make_self_nested_test.sh self_nested_access_check_18_${I} valid "$OP" family famorassem
1459 ./make_self_nested_test.sh self_nested_access_check_19_${I} valid "$OP" assembly public
1460 ./make_self_nested_test.sh self_nested_access_check_20_${I} unverifiable "$OP" assembly private
1461 ./make_self_nested_test.sh self_nested_access_check_21_${I} unverifiable "$OP" assembly family
1462 ./make_self_nested_test.sh self_nested_access_check_22_${I} valid "$OP" assembly assembly
1463 ./make_self_nested_test.sh self_nested_access_check_23_${I} unverifiable "$OP" assembly famandassem
1464 ./make_self_nested_test.sh self_nested_access_check_24_${I} valid "$OP" assembly famorassem
1466 ./make_self_nested_test.sh self_nested_access_check_25_${I} valid "$OP" famandassem public
1467 ./make_self_nested_test.sh self_nested_access_check_26_${I} unverifiable "$OP" famandassem private
1468 ./make_self_nested_test.sh self_nested_access_check_27_${I} unverifiable "$OP" famandassem family
1469 ./make_self_nested_test.sh self_nested_access_check_28_${I} valid "$OP" famandassem assembly
1470 ./make_self_nested_test.sh self_nested_access_check_29_${I} valid "$unverifiable" famandassem famandassem
1471 ./make_self_nested_test.sh self_nested_access_check_30_${I} valid "$OP" famandassem famorassem
1473 ./make_self_nested_test.sh self_nested_access_check_31_${I} valid "$OP" famorassem public
1474 ./make_self_nested_test.sh self_nested_access_check_32_${I} unverifiable "$OP" famorassem private
1475 ./make_self_nested_test.sh self_nested_access_check_33_${I} unverifiable "$OP" famorassem family
1476 ./make_self_nested_test.sh self_nested_access_check_34_${I} valid "$OP" famorassem assembly
1477 ./make_self_nested_test.sh self_nested_access_check_35_${I} unverifiable "$OP" famorassem famandassem
1478 ./make_self_nested_test.sh self_nested_access_check_36_${I} valid "$OP" famorassem famorassem
1484 for OP in "ldc.i4.0\n\t\tstsfld int32 Owner\/Nested::sfld" "ldsfld int32 Owner\/Nested::sfld\n\n\tpop" "ldsflda int32 Owner\/Nested::sfld\n\n\tpop" "callvirt instance int32 class Owner\/Nested::Target()" "call instance int32 class Owner\/Nested::Target()" "ldc.i4.0\n\t\tstfld int32 Owner\/Nested::fld\n\t\tldc.i4.0" "ldfld int32 Owner\/Nested::fld" "ldflda int32 Owner\/Nested::fld"
1486 ./make_cross_nested_access_test.sh cross_nested_access_check_1_${I} valid "$OP" public public no
1487 ./make_cross_nested_access_test.sh cross_nested_access_check_2_${I} valid "$OP" public public yes
1488 ./make_cross_nested_access_test.sh cross_nested_access_check_3_${I} unverifiable "$OP" public private no
1489 ./make_cross_nested_access_test.sh cross_nested_access_check_4_${I} unverifiable "$OP" public private yes
1490 ./make_cross_nested_access_test.sh cross_nested_access_check_5_${I} unverifiable "$OP" public family no
1491 ./make_cross_nested_access_test.sh cross_nested_access_check_7_${I} valid "$OP" public assembly no
1492 ./make_cross_nested_access_test.sh cross_nested_access_check_8_${I} valid "$OP" public assembly yes
1493 ./make_cross_nested_access_test.sh cross_nested_access_check_9_${I} unverifiable "$OP" public famandassem no
1494 ./make_cross_nested_access_test.sh cross_nested_access_check_b_${I} valid "$OP" public famorassem no
1495 ./make_cross_nested_access_test.sh cross_nested_access_check_c_${I} valid "$OP" public famorassem yes
1497 ./make_cross_nested_access_test.sh cross_nested_access_check_11_${I} valid "$OP" private public no
1498 ./make_cross_nested_access_test.sh cross_nested_access_check_12_${I} valid "$OP" private public yes
1499 ./make_cross_nested_access_test.sh cross_nested_access_check_13_${I} unverifiable "$OP" private private no
1500 ./make_cross_nested_access_test.sh cross_nested_access_check_14_${I} unverifiable "$OP" private private yes
1501 ./make_cross_nested_access_test.sh cross_nested_access_check_15_${I} unverifiable "$OP" private family no
1502 ./make_cross_nested_access_test.sh cross_nested_access_check_17_${I} valid "$OP" private assembly no
1503 ./make_cross_nested_access_test.sh cross_nested_access_check_18_${I} valid "$OP" private assembly yes
1504 ./make_cross_nested_access_test.sh cross_nested_access_check_19_${I} unverifiable "$OP" private famandassem no
1505 ./make_cross_nested_access_test.sh cross_nested_access_check_1b_${I} valid "$OP" private famorassem no
1506 ./make_cross_nested_access_test.sh cross_nested_access_check_1c_${I} valid "$OP" private famorassem yes
1508 ./make_cross_nested_access_test.sh cross_nested_access_check_21_${I} valid "$OP" family public no
1509 ./make_cross_nested_access_test.sh cross_nested_access_check_22_${I} valid "$OP" family public yes
1510 ./make_cross_nested_access_test.sh cross_nested_access_check_23_${I} unverifiable "$OP" family private no
1511 ./make_cross_nested_access_test.sh cross_nested_access_check_24_${I} unverifiable "$OP" family private yes
1512 ./make_cross_nested_access_test.sh cross_nested_access_check_25_${I} unverifiable "$OP" family family no
1513 ./make_cross_nested_access_test.sh cross_nested_access_check_27_${I} valid "$OP" family assembly no
1514 ./make_cross_nested_access_test.sh cross_nested_access_check_28_${I} valid "$OP" family assembly yes
1515 ./make_cross_nested_access_test.sh cross_nested_access_check_29_${I} unverifiable "$OP" family famandassem no
1516 ./make_cross_nested_access_test.sh cross_nested_access_check_2b_${I} valid "$OP" family famorassem no
1517 ./make_cross_nested_access_test.sh cross_nested_access_check_2c_${I} valid "$OP" family famorassem yes
1519 ./make_cross_nested_access_test.sh cross_nested_access_check_31_${I} valid "$OP" assembly public no
1520 ./make_cross_nested_access_test.sh cross_nested_access_check_32_${I} valid "$OP" assembly public yes
1521 ./make_cross_nested_access_test.sh cross_nested_access_check_33_${I} unverifiable "$OP" assembly private no
1522 ./make_cross_nested_access_test.sh cross_nested_access_check_34_${I} unverifiable "$OP" assembly private yes
1523 ./make_cross_nested_access_test.sh cross_nested_access_check_35_${I} unverifiable "$OP" assembly family no
1524 ./make_cross_nested_access_test.sh cross_nested_access_check_37_${I} valid "$OP" assembly assembly no
1525 ./make_cross_nested_access_test.sh cross_nested_access_check_38_${I} valid "$OP" assembly assembly yes
1526 ./make_cross_nested_access_test.sh cross_nested_access_check_39_${I} unverifiable "$OP" assembly famandassem no
1527 ./make_cross_nested_access_test.sh cross_nested_access_check_3b_${I} valid "$OP" assembly famorassem no
1528 ./make_cross_nested_access_test.sh cross_nested_access_check_3c_${I} valid "$OP" assembly famorassem yes
1530 ./make_cross_nested_access_test.sh cross_nested_access_check_41_${I} valid "$OP" famandassem public no
1531 ./make_cross_nested_access_test.sh cross_nested_access_check_42_${I} valid "$OP" famandassem public yes
1532 ./make_cross_nested_access_test.sh cross_nested_access_check_43_${I} unverifiable "$OP" famandassem private no
1533 ./make_cross_nested_access_test.sh cross_nested_access_check_44_${I} unverifiable "$OP" famandassem private yes
1534 ./make_cross_nested_access_test.sh cross_nested_access_check_45_${I} unverifiable "$OP" famandassem family no
1535 ./make_cross_nested_access_test.sh cross_nested_access_check_47_${I} valid "$OP" famandassem assembly no
1536 ./make_cross_nested_access_test.sh cross_nested_access_check_48_${I} valid "$OP" famandassem assembly yes
1537 ./make_cross_nested_access_test.sh cross_nested_access_check_49_${I} unverifiable "$OP" famandassem famandassem no
1538 ./make_cross_nested_access_test.sh cross_nested_access_check_4b_${I} valid "$OP" famandassem famorassem no
1539 ./make_cross_nested_access_test.sh cross_nested_access_check_4c_${I} valid "$OP" famandassem famorassem yes
1541 ./make_cross_nested_access_test.sh cross_nested_access_check_51_${I} valid "$OP" famorassem public no
1542 ./make_cross_nested_access_test.sh cross_nested_access_check_52_${I} valid "$OP" famorassem public yes
1543 ./make_cross_nested_access_test.sh cross_nested_access_check_53_${I} unverifiable "$OP" famorassem private no
1544 ./make_cross_nested_access_test.sh cross_nested_access_check_54_${I} unverifiable "$OP" famorassem private yes
1545 ./make_cross_nested_access_test.sh cross_nested_access_check_55_${I} unverifiable "$OP" famorassem family no
1546 ./make_cross_nested_access_test.sh cross_nested_access_check_57_${I} valid "$OP" famorassem assembly no
1547 ./make_cross_nested_access_test.sh cross_nested_access_check_58_${I} valid "$OP" famorassem assembly yes
1548 ./make_cross_nested_access_test.sh cross_nested_access_check_59_${I} unverifiable "$OP" famorassem famandassem no
1549 ./make_cross_nested_access_test.sh cross_nested_access_check_5b_${I} valid "$OP" famorassem famorassem no
1550 ./make_cross_nested_access_test.sh cross_nested_access_check_5c_${I} valid "$OP" famorassem famorassem yes
1556 for OP in "callvirt instance int32 class Owner\/Nested::Target()" "call instance int32 class Owner\/Nested::Target()" "ldc.i4.0\n\t\tstfld int32 Owner\/Nested::fld\n\t\tldc.i4.0" "ldc.i4.0\n\t\tstsfld int32 Owner\/Nested::sfld" "ldsfld int32 Owner\/Nested::sfld\n\n\tpop" "ldfld int32 Owner\/Nested::fld" "ldsflda int32 Owner\/Nested::sfld\n\n\tpop" "ldflda int32 Owner\/Nested::fld"
1558 ./make_cross_nested_access_test.sh cross_nested_access_check_2a_${I} valid "$OP" public public yes yes
1559 ./make_cross_nested_access_test.sh cross_nested_access_check_4a_${I} unverifiable "$OP" public private yes yes
1560 ./make_cross_nested_access_test.sh cross_nested_access_check_8a_${I} valid "$OP" public assembly yes yes
1561 ./make_cross_nested_access_test.sh cross_nested_access_check_ca_${I} valid "$OP" public famorassem yes yes
1563 ./make_cross_nested_access_test.sh cross_nested_access_check_12a_${I} valid "$OP" private public yes yes
1564 ./make_cross_nested_access_test.sh cross_nested_access_check_14a_${I} unverifiable "$OP" private private yes yes
1565 ./make_cross_nested_access_test.sh cross_nested_access_check_18a_${I} valid "$OP" private assembly yes yes
1566 ./make_cross_nested_access_test.sh cross_nested_access_check_1ca_${I} valid "$OP" private famorassem yes yes
1568 ./make_cross_nested_access_test.sh cross_nested_access_check_22a_${I} valid "$OP" family public yes yes
1569 ./make_cross_nested_access_test.sh cross_nested_access_check_24a_${I} unverifiable "$OP" family private yes yes
1570 ./make_cross_nested_access_test.sh cross_nested_access_check_28a_${I} valid "$OP" family assembly yes yes
1571 ./make_cross_nested_access_test.sh cross_nested_access_check_2ca_${I} valid "$OP" family famorassem yes yes
1573 ./make_cross_nested_access_test.sh cross_nested_access_check_32a_${I} valid "$OP" assembly public yes yes
1574 ./make_cross_nested_access_test.sh cross_nested_access_check_34a_${I} unverifiable "$OP" assembly private yes yes
1575 ./make_cross_nested_access_test.sh cross_nested_access_check_38a_${I} valid "$OP" assembly assembly yes yes
1576 ./make_cross_nested_access_test.sh cross_nested_access_check_3ca_${I} valid "$OP" assembly famorassem yes yes
1578 ./make_cross_nested_access_test.sh cross_nested_access_check_42a_${I} valid "$OP" famandassem public yes yes
1579 ./make_cross_nested_access_test.sh cross_nested_access_check_44a_${I} unverifiable "$OP" famandassem private yes yes
1580 ./make_cross_nested_access_test.sh cross_nested_access_check_48a_${I} valid "$OP" famandassem assembly yes yes
1581 ./make_cross_nested_access_test.sh cross_nested_access_check_4ca_${I} valid "$OP" famandassem famorassem yes yes
1583 ./make_cross_nested_access_test.sh cross_nested_access_check_52a_${I} valid "$OP" famorassem public yes yes
1584 ./make_cross_nested_access_test.sh cross_nested_access_check_54a_${I} unverifiable "$OP" famorassem private yes yes
1585 ./make_cross_nested_access_test.sh cross_nested_access_check_58a_${I} valid "$OP" famorassem assembly yes yes
1586 ./make_cross_nested_access_test.sh cross_nested_access_check_5ca_${I} valid "$OP" famorassem famorassem yes yes
1592 for OP in "callvirt instance int32 class Owner\/Nested::Target()" "call instance int32 class Owner\/Nested::Target()" "ldc.i4.0\n\t\tstfld int32 Owner\/Nested::fld\n\t\tldc.i4.0" "ldfld int32 Owner\/Nested::fld" "ldflda int32 Owner\/Nested::fld"
1594 ./make_cross_nested_access_test.sh cross_nested_access_check_6_${I} unverifiable "$OP" public family yes
1595 ./make_cross_nested_access_test.sh cross_nested_access_check_6a_${I} valid "$OP" public family yes yes
1596 ./make_cross_nested_access_test.sh cross_nested_access_check_a_${I} unverifiable "$OP" public famandassem yes
1597 ./make_cross_nested_access_test.sh cross_nested_access_check_aa_${I} valid "$OP" public famandassem yes yes
1599 ./make_cross_nested_access_test.sh cross_nested_access_check_16_${I} unverifiable "$OP" private family yes
1600 ./make_cross_nested_access_test.sh cross_nested_access_check_16a_${I} valid "$OP" private family yes yes
1601 ./make_cross_nested_access_test.sh cross_nested_access_check_1a_${I} unverifiable "$OP" private famandassem yes
1602 ./make_cross_nested_access_test.sh cross_nested_access_check_1aa_${I} valid "$OP" private famandassem yes yes
1604 ./make_cross_nested_access_test.sh cross_nested_access_check_26_${I} unverifiable "$OP" family family yes
1605 ./make_cross_nested_access_test.sh cross_nested_access_check_26a_${I} valid "$OP" family family yes yes
1606 ./make_cross_nested_access_test.sh cross_nested_access_check_2a_${I} unverifiable "$OP" family famandassem yes
1607 ./make_cross_nested_access_test.sh cross_nested_access_check_2aa_${I} valid "$OP" family famandassem yes yes
1609 ./make_cross_nested_access_test.sh cross_nested_access_check_36_${I} unverifiable "$OP" assembly family yes
1610 ./make_cross_nested_access_test.sh cross_nested_access_check_36a_${I} valid "$OP" assembly family yes yes
1611 ./make_cross_nested_access_test.sh cross_nested_access_check_3a_${I} unverifiable "$OP" assembly famandassem yes
1612 ./make_cross_nested_access_test.sh cross_nested_access_check_3aa_${I} valid "$OP" assembly famandassem yes yes
1614 ./make_cross_nested_access_test.sh cross_nested_access_check_46_${I} unverifiable "$OP" famandassem family yes
1615 ./make_cross_nested_access_test.sh cross_nested_access_check_46a_${I} valid "$OP" famandassem family yes yes
1616 ./make_cross_nested_access_test.sh cross_nested_access_check_4a_${I} unverifiable "$OP" famandassem famandassem yes
1617 ./make_cross_nested_access_test.sh cross_nested_access_check_4aa_${I} valid "$OP" famandassem famandassem yes yes
1619 ./make_cross_nested_access_test.sh cross_nested_access_check_56_${I} unverifiable "$OP" famorassem family yes
1620 ./make_cross_nested_access_test.sh cross_nested_access_check_56a_${I} valid "$OP" famorassem family yes yes
1621 ./make_cross_nested_access_test.sh cross_nested_access_check_5a_${I} unverifiable "$OP" famorassem famandassem yes
1622 ./make_cross_nested_access_test.sh cross_nested_access_check_5aa_${I} valid "$OP" famorassem famandassem yes yes
1627 for OP in "ldc.i4.0\n\t\tstsfld int32 Owner\/Nested::sfld" "ldsfld int32 Owner\/Nested::sfld\n\n\tpop" "ldsflda int32 Owner\/Nested::sfld\n\n\tpop"
1629 ./make_cross_nested_access_test.sh cross_nested_access_check_6_${I} valid "$OP" public family yes
1630 ./make_cross_nested_access_test.sh cross_nested_access_check_6a_${I} valid "$OP" public family yes yes
1631 ./make_cross_nested_access_test.sh cross_nested_access_check_a_${I} valid "$OP" public famandassem yes
1632 ./make_cross_nested_access_test.sh cross_nested_access_check_aa_${I} valid "$OP" public famandassem yes yes
1634 ./make_cross_nested_access_test.sh cross_nested_access_check_16_${I} valid "$OP" private family yes
1635 ./make_cross_nested_access_test.sh cross_nested_access_check_16a_${I} valid "$OP" private family yes yes
1636 ./make_cross_nested_access_test.sh cross_nested_access_check_1a_${I} valid "$OP" private famandassem yes
1637 ./make_cross_nested_access_test.sh cross_nested_access_check_1aa_${I} valid "$OP" private famandassem yes yes
1639 ./make_cross_nested_access_test.sh cross_nested_access_check_26_${I} valid "$OP" family family yes
1640 ./make_cross_nested_access_test.sh cross_nested_access_check_26a_${I} valid "$OP" family family yes yes
1641 ./make_cross_nested_access_test.sh cross_nested_access_check_2a_${I} valid "$OP" family famandassem yes
1642 ./make_cross_nested_access_test.sh cross_nested_access_check_2aa_${I} valid "$OP" family famandassem yes yes
1644 ./make_cross_nested_access_test.sh cross_nested_access_check_36_${I} valid "$OP" assembly family yes
1645 ./make_cross_nested_access_test.sh cross_nested_access_check_36a_${I} valid "$OP" assembly family yes yes
1646 ./make_cross_nested_access_test.sh cross_nested_access_check_3a_${I} valid "$OP" assembly famandassem yes
1647 ./make_cross_nested_access_test.sh cross_nested_access_check_3aa_${I} valid "$OP" assembly famandassem yes yes
1649 ./make_cross_nested_access_test.sh cross_nested_access_check_46_${I} valid "$OP" famandassem family yes
1650 ./make_cross_nested_access_test.sh cross_nested_access_check_46a_${I} valid "$OP" famandassem family yes yes
1651 ./make_cross_nested_access_test.sh cross_nested_access_check_4a_${I} valid "$OP" famandassem famandassem yes
1652 ./make_cross_nested_access_test.sh cross_nested_access_check_4aa_${I} valid "$OP" famandassem famandassem yes yes
1654 ./make_cross_nested_access_test.sh cross_nested_access_check_56_${I} valid "$OP" famorassem family yes
1655 ./make_cross_nested_access_test.sh cross_nested_access_check_56a_${I} valid "$OP" famorassem family yes yes
1656 ./make_cross_nested_access_test.sh cross_nested_access_check_5a_${I} valid "$OP" famorassem famandassem yes
1657 ./make_cross_nested_access_test.sh cross_nested_access_check_5aa_${I} valid "$OP" famorassem famandassem yes yes
1665 for OP in "ldc.i4.0\n\t\tstfld int32 Class::fld\n\t\tldc.i4.0" "ldc.i4.0\n\t\tstsfld int32 Class::sfld" "ldsfld int32 Class::sfld\n\n\tpop" "ldfld int32 Class::fld" "ldsflda int32 Class::sfld\n\n\tpop" "ldflda int32 Class::fld" "call instance int32 Class::Method()" "callvirt int32 Class::Method()"
1667 ./make_access_test.sh access_check_1_${I} valid "$OP" public public no
1668 ./make_access_test.sh access_check_2_${I} valid "$OP" public public yes
1669 ./make_access_test.sh access_check_3_${I} unverifiable "$OP" public private no
1670 ./make_access_test.sh access_check_4_${I} unverifiable "$OP" public private yes
1671 ./make_access_test.sh access_check_5_${I} unverifiable "$OP" public family no
1672 ./make_access_test.sh access_check_7_${I} valid "$OP" public assembly no
1673 ./make_access_test.sh access_check_8_${I} valid "$OP" public assembly yes
1674 ./make_access_test.sh access_check_9_${I} unverifiable "$OP" public famandassem no
1675 ./make_access_test.sh access_check_b_${I} valid "$OP" public famorassem no
1676 ./make_access_test.sh access_check_c_${I} valid "$OP" public famorassem yes
1678 ./make_access_test.sh access_check_11_${I} valid "$OP" private public no
1679 ./make_access_test.sh access_check_12_${I} valid "$OP" private public yes
1680 ./make_access_test.sh access_check_13_${I} unverifiable "$OP" private private no
1681 ./make_access_test.sh access_check_14_${I} unverifiable "$OP" private private yes
1682 ./make_access_test.sh access_check_15_${I} unverifiable "$OP" private family no
1683 ./make_access_test.sh access_check_17_${I} valid "$OP" private assembly no
1684 ./make_access_test.sh access_check_18_${I} valid "$OP" private assembly yes
1685 ./make_access_test.sh access_check_19_${I} unverifiable "$OP" private famandassem no
1686 ./make_access_test.sh access_check_1b_${I} valid "$OP" private famorassem no
1687 ./make_access_test.sh access_check_1c_${I} valid "$OP" private famorassem yes
1689 ./make_access_test.sh access_check_31_${I} valid "$OP" " " public no
1690 ./make_access_test.sh access_check_32_${I} valid "$OP" " " public yes
1691 ./make_access_test.sh access_check_33_${I} unverifiable "$OP" " " private no
1692 ./make_access_test.sh access_check_34_${I} unverifiable "$OP" " " private yes
1693 ./make_access_test.sh access_check_35_${I} unverifiable "$OP" " " family no
1694 ./make_access_test.sh access_check_37_${I} valid "$OP" " " assembly no
1695 ./make_access_test.sh access_check_38_${I} valid "$OP" " " assembly yes
1696 ./make_access_test.sh access_check_39_${I} unverifiable "$OP" " " famandassem no
1697 ./make_access_test.sh access_check_3b_${I} valid "$OP" " " famorassem no
1698 ./make_access_test.sh access_check_3c_${I} valid "$OP" " " famorassem yes
1703 #static members are diferent from instance members
1705 for OP in "ldc.i4.0\n\t\tstsfld int32 Class::sfld" "ldsfld int32 Class::sfld\n\n\tpop" "ldsflda int32 Class::sfld\n\n\tpop"
1707 ./make_access_test.sh access_check_41_${I} valid "$OP" public family yes
1708 ./make_access_test.sh access_check_42_${I} valid "$OP" public famandassem yes
1709 ./make_access_test.sh access_check_43_${I} valid "$OP" private family yes
1710 ./make_access_test.sh access_check_44_${I} valid "$OP" private famandassem yes
1711 ./make_access_test.sh access_check_45_${I} valid "$OP" " " family yes
1712 ./make_access_test.sh access_check_46_${I} valid "$OP" " " famandassem yes
1716 #try to access the base stuff directly
1718 for OP in "ldc.i4.0\n\t\tstfld int32 Class::fld\n\t\tldc.i4.0" "ldfld int32 Class::fld" "ldflda int32 Class::fld" "call instance int32 Class::Method()" "callvirt int32 Class::Method()"
1720 ./make_access_test.sh access_check_51_${I} unverifiable "$OP" public family yes
1721 ./make_access_test.sh access_check_52_${I} unverifiable "$OP" public famandassem yes
1722 ./make_access_test.sh access_check_53_${I} unverifiable "$OP" private family yes
1723 ./make_access_test.sh access_check_54_${I} unverifiable "$OP" private famandassem yes
1724 ./make_access_test.sh access_check_55_${I} unverifiable "$OP" " " family yes
1725 ./make_access_test.sh access_check_56_${I} unverifiable "$OP" " " famandassem yes
1729 #try to access the subclass stuff
1731 for OP in "ldc.i4.0\n\t\tstfld int32 Class::fld\n\t\tldc.i4.0" "ldfld int32 Class::fld" "ldflda int32 Class::fld" "call instance int32 Class::Method()" "callvirt int32 Class::Method()"
1733 ./make_access_test.sh access_check_61_${I} valid "$OP" public family yes yes
1734 ./make_access_test.sh access_check_62_${I} valid "$OP" public famandassem yes yes
1735 ./make_access_test.sh access_check_63_${I} valid "$OP" private family yes yes
1736 ./make_access_test.sh access_check_64_${I} valid "$OP" private famandassem yes yes
1737 ./make_access_test.sh access_check_65_${I} valid "$OP" " " family yes yes
1738 ./make_access_test.sh access_check_66_${I} valid "$OP" " " famandassem yes yes
1743 function create_nesting_test_same_result () {
1747 for NESTED in yes no
1751 if ! ( [ "$NESTED" == "no" ] && [ "$LOAD" == "yes" ] ) ; then
1752 ./make_double_nesting_test.sh double_nesting_access_check_${K}_$I $2 "$OP" $3 $4 $5 "$BASE" "$NESTED" "$LOAD"
1760 function create_nesting_test_only_first_ok () {
1765 for NESTED in yes no
1769 if ! ( [ "$NESTED" == "no" ] && [ "$LOAD" == "yes" ] ) ; then
1771 if [ "$FIRST" == "$K" ]; then
1774 ./make_double_nesting_test.sh double_nesting_access_check_${K}_$I $EXPECT "$OP" $2 $3 $4 "$BASE" "$NESTED" "$LOAD"
1784 for OP in "callvirt instance int32 class Root\/Nested::Target()" "call instance int32 class Root\/Nested::Target()" "ldc.i4.0\n\t\tstfld int32 Root\/Nested::fld\n\t\tldc.i4.0" "ldfld int32 Root\/Nested::fld" "ldflda int32 Root\/Nested::fld"
1786 create_nesting_test_same_result 1 valid public assembly assembly
1788 ./make_double_nesting_test.sh double_nesting_access_check_7_$I valid "$OP" public assembly family yes yes yes
1789 ./make_double_nesting_test.sh double_nesting_access_check_8_$I unverifiable "$OP" public assembly family yes yes no
1790 ./make_double_nesting_test.sh double_nesting_access_check_9_$I unverifiable "$OP" public assembly family yes no no
1791 ./make_double_nesting_test.sh double_nesting_access_check_10_$I valid "$OP" public assembly family no yes yes
1792 ./make_double_nesting_test.sh double_nesting_access_check_11_$I unverifiable "$OP" public assembly family no yes no
1793 ./make_double_nesting_test.sh double_nesting_access_check_12_$I unverifiable "$OP" public assembly family no no no
1795 ./make_double_nesting_test.sh double_nesting_access_check_13_$I valid "$OP" public assembly famandassem yes yes yes
1796 ./make_double_nesting_test.sh double_nesting_access_check_14_$I unverifiable "$OP" public assembly famandassem yes yes no
1797 ./make_double_nesting_test.sh double_nesting_access_check_15_$I unverifiable "$OP" public assembly famandassem yes no no
1798 ./make_double_nesting_test.sh double_nesting_access_check_16_$I valid "$OP" public assembly famandassem no yes yes
1799 ./make_double_nesting_test.sh double_nesting_access_check_17_$I unverifiable "$OP" public assembly famandassem no yes no
1800 ./make_double_nesting_test.sh double_nesting_access_check_18_$I unverifiable "$OP" public assembly famandassem no no no
1802 create_nesting_test_same_result 19 valid public assembly famorassem
1803 create_nesting_test_same_result 25 unverifiable public assembly private
1804 create_nesting_test_same_result 31 valid public assembly public
1806 ./make_double_nesting_test.sh double_nesting_access_check_37_$I valid "$OP" public family assembly yes yes yes
1807 ./make_double_nesting_test.sh double_nesting_access_check_38_$I valid "$OP" public family assembly yes yes no
1808 ./make_double_nesting_test.sh double_nesting_access_check_39_$I valid "$OP" public family assembly yes no no
1809 ./make_double_nesting_test.sh double_nesting_access_check_40_$I unverifiable "$OP" public family assembly no yes yes
1810 ./make_double_nesting_test.sh double_nesting_access_check_41_$I unverifiable "$OP" public family assembly no yes no
1811 ./make_double_nesting_test.sh double_nesting_access_check_42_$I unverifiable "$OP" public family assembly no no no
1813 create_nesting_test_only_first_ok 43 public family family
1814 create_nesting_test_only_first_ok 49 public family famandassem
1816 ./make_double_nesting_test.sh double_nesting_access_check_55_$I valid "$OP" public family famorassem yes yes yes
1817 ./make_double_nesting_test.sh double_nesting_access_check_56_$I valid "$OP" public family famorassem yes yes no
1818 ./make_double_nesting_test.sh double_nesting_access_check_57_$I valid "$OP" public family famorassem yes no no
1819 ./make_double_nesting_test.sh double_nesting_access_check_58_$I unverifiable "$OP" public family famorassem no yes yes
1820 ./make_double_nesting_test.sh double_nesting_access_check_59_$I unverifiable "$OP" public family famorassem no yes no
1821 ./make_double_nesting_test.sh double_nesting_access_check_60_$I unverifiable "$OP" public family famorassem no no no
1823 create_nesting_test_same_result 61 unverifiable public family private
1825 ./make_double_nesting_test.sh double_nesting_access_check_67_$I valid "$OP" public family public yes yes yes
1826 ./make_double_nesting_test.sh double_nesting_access_check_68_$I valid "$OP" public family public yes yes no
1827 ./make_double_nesting_test.sh double_nesting_access_check_69_$I valid "$OP" public family public yes no no
1828 ./make_double_nesting_test.sh double_nesting_access_check_70_$I unverifiable "$OP" public family public no yes yes
1829 ./make_double_nesting_test.sh double_nesting_access_check_71_$I unverifiable "$OP" public family public no yes no
1830 ./make_double_nesting_test.sh double_nesting_access_check_72_$I unverifiable "$OP" public family public no no no
1832 ./make_double_nesting_test.sh double_nesting_access_check_73_$I valid "$OP" public famandassem assembly yes yes yes
1833 ./make_double_nesting_test.sh double_nesting_access_check_74_$I valid "$OP" public famandassem assembly yes yes no
1834 ./make_double_nesting_test.sh double_nesting_access_check_75_$I valid "$OP" public famandassem assembly yes no no
1835 ./make_double_nesting_test.sh double_nesting_access_check_76_$I unverifiable "$OP" public famandassem assembly no yes yes
1836 ./make_double_nesting_test.sh double_nesting_access_check_77_$I unverifiable "$OP" public famandassem assembly no yes no
1837 ./make_double_nesting_test.sh double_nesting_access_check_78_$I unverifiable "$OP" public famandassem assembly no no no
1839 create_nesting_test_only_first_ok 79 public famandassem family
1840 create_nesting_test_only_first_ok 85 public famandassem famandassem
1842 ./make_double_nesting_test.sh double_nesting_access_check_91_$I valid "$OP" public famandassem famorassem yes yes yes
1843 ./make_double_nesting_test.sh double_nesting_access_check_92_$I valid "$OP" public famandassem famorassem yes yes no
1844 ./make_double_nesting_test.sh double_nesting_access_check_93_$I valid "$OP" public famandassem famorassem yes no no
1845 ./make_double_nesting_test.sh double_nesting_access_check_94_$I unverifiable "$OP" public famandassem famorassem no yes yes
1846 ./make_double_nesting_test.sh double_nesting_access_check_95_$I unverifiable "$OP" public famandassem famorassem no yes no
1847 ./make_double_nesting_test.sh double_nesting_access_check_96_$I unverifiable "$OP" public famandassem famorassem no no no
1849 create_nesting_test_same_result 97 unverifiable public famandassem private
1851 ./make_double_nesting_test.sh double_nesting_access_check_103_$I valid "$OP" public famandassem public yes yes yes
1852 ./make_double_nesting_test.sh double_nesting_access_check_104_$I valid "$OP" public famandassem public yes yes no
1853 ./make_double_nesting_test.sh double_nesting_access_check_105_$I valid "$OP" public famandassem public yes no no
1854 ./make_double_nesting_test.sh double_nesting_access_check_106_$I unverifiable "$OP" public famandassem public no yes yes
1855 ./make_double_nesting_test.sh double_nesting_access_check_107_$I unverifiable "$OP" public famandassem public no yes no
1856 ./make_double_nesting_test.sh double_nesting_access_check_108_$I unverifiable "$OP" public famandassem public no no no
1858 create_nesting_test_same_result 109 valid public famorassem assembly
1860 ./make_double_nesting_test.sh double_nesting_access_check_115_$I valid "$OP" public famorassem family yes yes yes
1861 ./make_double_nesting_test.sh double_nesting_access_check_116_$I unverifiable "$OP" public famorassem family yes yes no
1862 ./make_double_nesting_test.sh double_nesting_access_check_117_$I unverifiable "$OP" public famorassem family yes no no
1863 ./make_double_nesting_test.sh double_nesting_access_check_118_$I valid "$OP" public famorassem family no yes yes
1864 ./make_double_nesting_test.sh double_nesting_access_check_119_$I unverifiable "$OP" public famorassem family no yes no
1865 ./make_double_nesting_test.sh double_nesting_access_check_120_$I unverifiable "$OP" public famorassem family no no no
1867 ./make_double_nesting_test.sh double_nesting_access_check_121_$I valid "$OP" public famorassem famandassem yes yes yes
1868 ./make_double_nesting_test.sh double_nesting_access_check_122_$I unverifiable "$OP" public famorassem famandassem yes yes no
1869 ./make_double_nesting_test.sh double_nesting_access_check_123_$I unverifiable "$OP" public famorassem famandassem yes no no
1870 ./make_double_nesting_test.sh double_nesting_access_check_124_$I valid "$OP" public famorassem famandassem no yes yes
1871 ./make_double_nesting_test.sh double_nesting_access_check_125_$I unverifiable "$OP" public famorassem famandassem no yes no
1872 ./make_double_nesting_test.sh double_nesting_access_check_126_$I unverifiable "$OP" public famorassem famandassem no no no
1874 create_nesting_test_same_result 127 valid public famorassem famorassem
1875 create_nesting_test_same_result 133 unverifiable public famorassem private
1876 create_nesting_test_same_result 139 valid public famorassem public
1877 create_nesting_test_same_result 145 unverifiable public private assembly
1878 create_nesting_test_same_result 151 unverifiable public private family
1879 create_nesting_test_same_result 157 unverifiable public private famandassem
1880 create_nesting_test_same_result 163 unverifiable public private famorassem
1881 create_nesting_test_same_result 169 unverifiable public private private
1882 create_nesting_test_same_result 175 unverifiable public private public
1883 create_nesting_test_same_result 181 valid public public assembly
1885 ./make_double_nesting_test.sh double_nesting_access_check_187_$I valid "$OP" public public family yes yes yes
1886 ./make_double_nesting_test.sh double_nesting_access_check_188_$I unverifiable "$OP" public public family yes yes no
1887 ./make_double_nesting_test.sh double_nesting_access_check_189_$I unverifiable "$OP" public public family yes no no
1888 ./make_double_nesting_test.sh double_nesting_access_check_190_$I valid "$OP" public public family no yes yes
1889 ./make_double_nesting_test.sh double_nesting_access_check_191_$I unverifiable "$OP" public public family no yes no
1890 ./make_double_nesting_test.sh double_nesting_access_check_192_$I unverifiable "$OP" public public family no no no
1892 ./make_double_nesting_test.sh double_nesting_access_check_193_$I valid "$OP" public public famandassem yes yes yes
1893 ./make_double_nesting_test.sh double_nesting_access_check_194_$I unverifiable "$OP" public public famandassem yes yes no
1894 ./make_double_nesting_test.sh double_nesting_access_check_195_$I unverifiable "$OP" public public famandassem yes no no
1895 ./make_double_nesting_test.sh double_nesting_access_check_196_$I valid "$OP" public public famandassem no yes yes
1896 ./make_double_nesting_test.sh double_nesting_access_check_197_$I unverifiable "$OP" public public famandassem no yes no
1897 ./make_double_nesting_test.sh double_nesting_access_check_198_$I unverifiable "$OP" public public famandassem no no no
1899 create_nesting_test_same_result 199 valid public public famorassem
1900 create_nesting_test_same_result 205 unverifiable public public private
1901 create_nesting_test_same_result 211 valid public public public
1905 function create_nesting_test_same_result_static () {
1909 for NESTED in yes no
1911 ./make_double_nesting_test.sh double_nesting_access_check_${K}_$I $2 "$OP" $3 $4 $5 "$BASE" "$NESTED" yes
1917 function create_nesting_test_strips_result_static () {
1921 for NESTED in yes no
1924 if [ "$NESTED" == "yes" ]; then
1927 ./make_double_nesting_test.sh double_nesting_access_check_${K}_$I $EXPECT "$OP" $2 $3 $4 "$BASE" "$NESTED" yes
1933 for OP in "ldc.i4.0\n\t\tstsfld int32 Root\/Nested::sfld" "ldsfld int32 Root\/Nested::sfld\n\n\tpop" "ldsflda int32 Root\/Nested::sfld\n\n\tpop"
1935 create_nesting_test_same_result 1 valid public assembly assembly
1937 create_nesting_test_strips_result_static 5 public assembly family
1938 create_nesting_test_strips_result_static 9 public assembly family
1940 create_nesting_test_same_result 13 valid public assembly famorassem
1941 create_nesting_test_same_result 17 unverifiable public assembly private
1942 create_nesting_test_same_result 21 valid public assembly public
1944 ./make_double_nesting_test.sh double_nesting_access_check_25_$I valid "$OP" public family assembly yes yes yes
1945 ./make_double_nesting_test.sh double_nesting_access_check_26_$I valid "$OP" public family assembly yes no yes
1946 ./make_double_nesting_test.sh double_nesting_access_check_27_$I unverifiable "$OP" public family assembly no yes yes
1947 ./make_double_nesting_test.sh double_nesting_access_check_27_$I unverifiable "$OP" public family assembly no no yes
1949 ./make_double_nesting_test.sh double_nesting_access_check_29_$I valid "$OP" public family family yes yes yes
1950 ./make_double_nesting_test.sh double_nesting_access_check_30_$I unverifiable "$OP" public family family yes no yes
1951 ./make_double_nesting_test.sh double_nesting_access_check_31_$I unverifiable "$OP" public family family no yes yes
1952 ./make_double_nesting_test.sh double_nesting_access_check_32_$I unverifiable "$OP" public family family no no yes
1954 ./make_double_nesting_test.sh double_nesting_access_check_33_$I valid "$OP" public family famandassem yes yes yes
1955 ./make_double_nesting_test.sh double_nesting_access_check_34_$I unverifiable "$OP" public family famandassem yes no yes
1956 ./make_double_nesting_test.sh double_nesting_access_check_35_$I unverifiable "$OP" public family famandassem no yes yes
1957 ./make_double_nesting_test.sh double_nesting_access_check_36_$I unverifiable "$OP" public family famandassem no no yes
1959 ./make_double_nesting_test.sh double_nesting_access_check_37_$I valid "$OP" public family famorassem yes yes yes
1960 ./make_double_nesting_test.sh double_nesting_access_check_38_$I valid "$OP" public family famorassem yes no yes
1961 ./make_double_nesting_test.sh double_nesting_access_check_39_$I unverifiable "$OP" public family famorassem no yes yes
1962 ./make_double_nesting_test.sh double_nesting_access_check_40_$I unverifiable "$OP" public family famorassem no no yes
1964 create_nesting_test_same_result 41 unverifiable public family private
1966 ./make_double_nesting_test.sh double_nesting_access_check_45_$I valid "$OP" public family public yes yes yes
1967 ./make_double_nesting_test.sh double_nesting_access_check_46_$I valid "$OP" public family public yes no yes
1968 ./make_double_nesting_test.sh double_nesting_access_check_47_$I unverifiable "$OP" public family public no yes yes
1969 ./make_double_nesting_test.sh double_nesting_access_check_48_$I unverifiable "$OP" public family public no no yes
1971 ./make_double_nesting_test.sh double_nesting_access_check_49_$I valid "$OP" public famandassem assembly yes yes yes
1972 ./make_double_nesting_test.sh double_nesting_access_check_50_$I valid "$OP" public famandassem assembly yes no yes
1973 ./make_double_nesting_test.sh double_nesting_access_check_51_$I unverifiable "$OP" public famandassem assembly no yes yes
1974 ./make_double_nesting_test.sh double_nesting_access_check_52_$I unverifiable "$OP" public famandassem assembly no no yes
1976 ./make_double_nesting_test.sh double_nesting_access_check_53_$I valid "$OP" public famandassem family yes yes yes
1977 ./make_double_nesting_test.sh double_nesting_access_check_54_$I unverifiable "$OP" public famandassem family yes no yes
1978 ./make_double_nesting_test.sh double_nesting_access_check_55_$I unverifiable "$OP" public famandassem family no yes yes
1979 ./make_double_nesting_test.sh double_nesting_access_check_56_$I unverifiable "$OP" public famandassem family no no yes
1981 ./make_double_nesting_test.sh double_nesting_access_check_57_$I valid "$OP" public famandassem famandassem yes yes yes
1982 ./make_double_nesting_test.sh double_nesting_access_check_58_$I unverifiable "$OP" public famandassem famandassem yes no yes
1983 ./make_double_nesting_test.sh double_nesting_access_check_59_$I unverifiable "$OP" public famandassem famandassem no yes yes
1984 ./make_double_nesting_test.sh double_nesting_access_check_60_$I unverifiable "$OP" public famandassem famandassem no no yes
1986 ./make_double_nesting_test.sh double_nesting_access_check_61_$I valid "$OP" public famandassem famorassem yes yes yes
1987 ./make_double_nesting_test.sh double_nesting_access_check_62_$I valid "$OP" public famandassem famorassem yes no yes
1988 ./make_double_nesting_test.sh double_nesting_access_check_63_$I unverifiable "$OP" public famandassem famorassem no yes yes
1989 ./make_double_nesting_test.sh double_nesting_access_check_64_$I unverifiable "$OP" public famandassem famorassem no no yes
1991 create_nesting_test_same_result 65 unverifiable public famandassem private
1993 ./make_double_nesting_test.sh double_nesting_access_check_69_$I valid "$OP" public famandassem public yes yes yes
1994 ./make_double_nesting_test.sh double_nesting_access_check_70_$I valid "$OP" public famandassem public yes no yes
1995 ./make_double_nesting_test.sh double_nesting_access_check_71_$I unverifiable "$OP" public famandassem public no yes yes
1996 ./make_double_nesting_test.sh double_nesting_access_check_72_$I unverifiable "$OP" public famandassem public no no yes
1998 create_nesting_test_same_result 73 valid public famorassem assembly
1999 create_nesting_test_strips_result_static 77 public famorassem family
2000 create_nesting_test_strips_result_static 81 public famorassem famandassem
2002 create_nesting_test_same_result 85 valid public famorassem famorassem
2003 create_nesting_test_same_result 89 unverifiable public famorassem private
2004 create_nesting_test_same_result 93 valid public famorassem public
2005 create_nesting_test_same_result 97 unverifiable public private assembly
2006 create_nesting_test_same_result 101 unverifiable public private family
2007 create_nesting_test_same_result 105 unverifiable public private famandassem
2008 create_nesting_test_same_result 109 unverifiable public private famorassem
2009 create_nesting_test_same_result 113 unverifiable public private private
2010 create_nesting_test_same_result 117 unverifiable public private public
2011 create_nesting_test_same_result 121 valid public public assembly
2012 create_nesting_test_strips_result_static 125 public public family
2013 create_nesting_test_strips_result_static 129 public public famandassem
2014 create_nesting_test_same_result 133 valid public public famorassem
2015 create_nesting_test_same_result 137 unverifiable public public private
2016 create_nesting_test_same_result 141 valid public public public
2024 ./make_ldtoken_test.sh ldtoken_class valid "ldtoken class Example" "call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)"
2026 ./make_ldtoken_test.sh ldtoken_class invalid "ldtoken class [mscorlib]ExampleMM" "call class [mscorlib]System.Type class [mscorlib]System.Type::GetTypeFromHandle(valuetype [mscorlib]System.RuntimeTypeHandle)"
2028 ./make_ldtoken_test.sh ldtoken_field valid "ldtoken field int32 Example::fld" "call class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Reflection.FieldInfo::GetFieldFromHandle(valuetype [mscorlib]System.RuntimeFieldHandle)"
2030 ./make_ldtoken_test.sh ldtoken_field invalid "ldtoken field int32 Example::MM" "call class [mscorlib]System.Reflection.FieldInfo class [mscorlib]System.Reflection.FieldInfo::GetFieldFromHandle(valuetype [mscorlib]System.RuntimeFieldHandle)"
2032 ./make_ldtoken_test.sh ldtoken_method valid "ldtoken method void Example::Method()" "call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetMethodFromHandle(valuetype [mscorlib]System.RuntimeMethodHandle)"
2034 ./make_ldtoken_test.sh ldtoken_method invalid "ldtoken method int32 Example::Method()" "call class [mscorlib]System.Reflection.MethodBase class [mscorlib]System.Reflection.MethodBase::GetMethodFromHandle(valuetype [mscorlib]System.RuntimeMethodHandle)"