4 if [ `which gsed 2> /dev/null` ] ; then
21 if [ "$TEST_CCONV1" != "" ]; then
26 RET_2_LOCAL="$TEST_RET_TYPE2"
29 if [ "$TEST_RET_TYPE2" = "void" ]; then
34 LDFTN="ldftn $TCONV_2 ${TEST_RET_TYPE2} Driver::Method(${TEST_PARAM_TYPE2})"
35 CALLVIRT="callvirt instance $TCONV_1 ${TEST_RET_TYPE1} TargetDelegate::Invoke (${TEST_PARAM_TYPE1})"
36 LOCAL_PARAM_1="${TEST_PARAM_TYPE1}"
40 .method public static $TCONV_2 RET_2 Method(PARAM_2 V_0) cil managed
43 .locals init ($RET_2_LOCAL ARG)
50 if [ "$TEST_USE_NATIVE" = "pinvoke" ]; then
51 LDFTN="ldftn $TCONV_2 ${TEST_RET_TYPE2} Driver::NativeMethod(${TEST_PARAM_TYPE2})"
54 LOCAL_PARAM_1="native int"
59 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
60 TEST_FILE=${TEST_NAME}_generated.il
64 $SED -e "s/VALIDITY/${TEST_VALIDITY}/g" -e "s/RET_1/${TEST_RET_TYPE1}/g" -e "s/RET_2/${TEST_RET_TYPE2}/g" -e "s/PARAM_1/${TEST_PARAM_TYPE1}/g" -e "s/PARAM_2/${TEST_PARAM_TYPE2}/g"> $TEST_FILE <<//EOF
66 // VALIDITY CIL which breaks the ECMA-335 rules.
67 // this CIL should fail verification by a conforming CLI verifier.
69 .assembly '${TEST_NAME}_generated'
71 .hash algorithm 0x00008004
75 .class ClassA extends [mscorlib]System.Object
79 .class ClassB extends [mscorlib]System.Object
83 .class ClassSubA extends ClassA
87 .class interface abstract InterfaceA
91 .class interface abstract InterfaceB implements InterfaceA
95 .class ImplA extends [mscorlib]System.Object implements InterfaceA
99 .class sealed MyValueType extends [mscorlib]System.ValueType
101 .field private int32 v
104 .class public auto ansi sealed Int32Enum
105 extends [mscorlib]System.Enum
107 .field public specialname rtspecialname unsigned int32 value__
109 .field public static literal valuetype Int32Enum V_0 = int32(0x00)
110 .field public static literal valuetype Int32Enum V_1 = int32(0x01)
114 .class public auto ansi sealed TargetDelegate extends [mscorlib]System.MulticastDelegate
116 .method public hidebysig specialname rtspecialname
117 instance default void .ctor (object 'object', native int 'method') runtime managed
121 .method public virtual hidebysig newslot
122 instance $TCONV_1 RET_1 Invoke (PARAM_1 V_0) runtime managed
126 .method public virtual hidebysig newslot
127 instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object') runtime managed
131 .method public virtual hidebysig newslot
132 instance default RET_1 EndInvoke (class [mscorlib]System.IAsyncResult result) runtime managed
138 .class public auto ansi Driver
142 .method public static pinvokeimpl ("libtest" as "Bla" winapi) $TCONV_2 RET_2 NativeMethod (PARAM_2 V_0) cil managed
146 .method public static int32 Foo() cil managed
150 .locals init ($LOCAL_PARAM_1 ARG)
155 newobj instance void class TargetDelegate::.ctor(object, native int) // VALIDITY