4 if [ `which gsed 2> /dev/null` ] ; then
15 if [ "$TEST_EXTENDS" == "yes" ]; then
16 TEST_EXTENDS
="extends Owner"
17 TEST_CONSTRUCTOR
="call instance void Owner::.ctor()"
19 TEST_EXTENDS
="extends [mscorlib]System.Object"
20 TEST_CONSTRUCTOR
="call instance void object::.ctor()"
23 TEST_NAME
=${TEST_VALIDITY}_
${TEST_NAME}
24 TEST_FILE
=${TEST_NAME}_generated.il
26 $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/CONSTRUCTOR/${TEST_CONSTRUCTOR}/g" -e "s/CLASS_ACCESS/${TEST_CLASS_ACCESS}/g" -e "s/MEMBER_ACCESS/${TEST_MEMBER_ACCESS}/g" -e "s/EXTENDS/${TEST_EXTENDS}/g" > $TEST_FILE <<//EOF
28 .assembly
'${TEST_NAME}_generated'
30 .
hash algorithm
0x00008004
34 // VALIDITY CIL
which breaks the ECMA-335 rules.
35 // this CIL should fail verification by a conforming CLI verifier.
37 .assembly extern mscorlib
40 .publickeytoken
= (B7
7A
5C
56 19 34 E0
89 ) // .z\V
.4..
43 .class Owner extends
[mscorlib
]System.Object
45 .method public static Owner
/Nested Create
()
48 newobj instance void class Owner
/Nested
::.ctor
()
52 .method public hidebysig specialname rtspecialname instance default void .ctor
() cil managed
56 call instance void object
::.ctor
()
60 .class nested CLASS_ACCESS Nested extends
[mscorlib
]System.Object
62 .field MEMBER_ACCESS int32 fld
63 .field MEMBER_ACCESS static int32 sfld
65 .method public hidebysig specialname rtspecialname instance default void .ctor
() cil managed
69 call instance void object
::.ctor
()
73 .method MEMBER_ACCESS int32 Target
()
82 .class public Test EXTENDS
84 .method public void Method
()
87 call class Owner
/Nested Owner
::Create
()
93 .method public hidebysig specialname rtspecialname instance default void .ctor
() cil managed
102 .method public static int32 Main
() cil managed
106 newobj instance void class Test
::.ctor
()
107 call instance void class Test
::Method
()