16 if [ "$TEST_CCONV1" != "" ]; then
21 RET_2_LOCAL="$TEST_RET_TYPE2"
24 if [ "$TEST_RET_TYPE2" == "void" ]; then
29 LDFTN="ldftn $TCONV_2 ${TEST_RET_TYPE2} Driver::Method(${TEST_PARAM_TYPE2})"
30 CALLVIRT="callvirt instance $TCONV_1 ${TEST_RET_TYPE1} TargetDelegate::Invoke (${TEST_PARAM_TYPE1})"
31 LOCAL_PARAM_1="${TEST_PARAM_TYPE1}"
35 .method public static $TCONV_2 RET_2 Method(PARAM_2 V_0) cil managed
38 .locals init ($RET_2_LOCAL ARG)
45 if [ "$TEST_USE_NATIVE" == "pinvoke" ]; then
46 LDFTN="ldftn $TCONV_2 ${TEST_RET_TYPE2} Driver::NativeMethod(${TEST_PARAM_TYPE2})"
49 LOCAL_PARAM_1="native int"
54 TEST_NAME=${TEST_VALIDITY}_${TEST_NAME}
55 TEST_FILE=${TEST_NAME}_generated.il
59 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
61 // VALIDITY CIL which breaks the ECMA-335 rules.
62 // this CIL should fail verification by a conforming CLI verifier.
64 .assembly '${TEST_NAME}_generated'
66 .hash algorithm 0x00008004
70 .class ClassA extends [mscorlib]System.Object
74 .class ClassB extends [mscorlib]System.Object
78 .class ClassSubA extends ClassA
82 .class interface abstract InterfaceA
86 .class interface abstract InterfaceB implements InterfaceA
90 .class ImplA extends [mscorlib]System.Object implements InterfaceA
94 .class sealed MyValueType extends [mscorlib]System.ValueType
96 .field private int32 v
99 .class public auto ansi sealed Int32Enum
100 extends [mscorlib]System.Enum
102 .field public specialname rtspecialname unsigned int32 value__
104 .field public static literal valuetype Int32Enum V_0 = int32(0x00)
105 .field public static literal valuetype Int32Enum V_1 = int32(0x01)
109 .class public auto ansi sealed TargetDelegate extends [mscorlib]System.MulticastDelegate
111 .method public hidebysig specialname rtspecialname
112 instance default void .ctor (object 'object', native int 'method') runtime managed
116 .method public virtual hidebysig newslot
117 instance $TCONV_1 RET_1 Invoke (PARAM_1 V_0) runtime managed
121 .method public virtual hidebysig newslot
122 instance default class [mscorlib]System.IAsyncResult BeginInvoke (class [mscorlib]System.AsyncCallback callback, object 'object') runtime managed
126 .method public virtual hidebysig newslot
127 instance default RET_1 EndInvoke (class [mscorlib]System.IAsyncResult result) runtime managed
133 .class public auto ansi Driver
137 .method public static pinvokeimpl ("libtest" as "Bla" winapi) $TCONV_2 RET_2 NativeMethod (PARAM_2 V_0) cil managed
141 .method public static int32 Foo() cil managed
145 .locals init ($LOCAL_PARAM_1 ARG)
150 newobj instance void class TargetDelegate::.ctor(object, native int) // VALIDITY