4 if [ `which gsed 2> /dev/null` ] ; then
12 TEST_INSTANCE_METHOD=$5
15 if [ "$TEST_INSTANCE_METHOD" = "instance" ]; then
16 MEMBER_TEST_OP=$TEST_OP
17 MEMBER_TEST_LOAD_ARGS=$TEST_LOAD_ARGS
18 MEMBER_TEST_EXTRA_STUFF=$6
20 TEST_LOAD_ARGS="newobj instance void Driver::.ctor()"
21 TEST_OP="call instance void Driver::MemberMain()"
27 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
28 TEST_FILE=${TEST_NAME}_generated.il
30 $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/OPCODE/${TEST_OP}/g" -e "s/LOAD_ARGS/${TEST_LOAD_ARGS}/g" -e "s/MEMBER_OP/${MEMBER_TEST_OP}/g" -e "s/MEMBER_LD_ARGS/${MEMBER_TEST_LOAD_ARGS}/g" -e "s/EXTRA_STUFF/${TEST_EXTRA_STUFF}/g" -e "s/EXTRA/${MEMBER_TEST_EXTRA_STUFF}/g" > $TEST_FILE <<//EOF
32 // VALIDITY CIL which breaks the ECMA-335 rules.
33 // this CIL should fail verification by a conforming CLI verifier.
35 .assembly '${TEST_NAME}_generated'
37 .hash algorithm 0x00008004
41 .assembly extern mscorlib
44 .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
47 .method public static void GlobalMethod1() cil managed
52 .method public static void GlobalMethod2(int32 a) cil managed
57 .class ClassA extends [mscorlib]System.Object
59 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
63 call instance void object::.ctor()
67 .method public void Method1() cil managed
72 .method public void Method2(int32 a) cil managed
77 .method public virtual void VirtMethod() cil managed
83 .class ClassB extends [mscorlib]System.Object
85 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
89 call instance void object::.ctor()
95 .class ClassC extends ClassA
97 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
101 call instance void ClassA::.ctor()
105 .method public virtual final void VirtMethod() cil managed
111 .class interface abstract InterfaceA
113 .method public abstract virtual instance void AbsMethod () cil managed
118 .class ImplIfaceA extends [mscorlib]System.Object implements InterfaceA
120 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
124 call instance void object::.ctor()
128 .method public virtual instance void AbsMethod () cil managed
134 .class sealed MyValueType extends [mscorlib]System.ValueType
136 .field private int32 v
138 .method public instance void Method ()
143 .method public virtual instance int32 GetHashCode()
151 .class BaseClass extends [mscorlib]System.Object
153 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
157 call instance void object::.ctor()
162 .method public virtual void VirtMethod ()
169 .class Driver extends BaseClass
172 .method public virtual void VirtMethod ()
177 .method public hidebysig specialname rtspecialname instance default void .ctor () cil managed
181 call instance void BaseClass::.ctor()
185 .method public void MemberMain() cil managed
188 .locals init (MyValueType V_0)
197 .method public static void Main() cil managed
201 .locals init (MyValueType V_0)
208 } catch [mscorlib]System.NullReferenceException {