return o.GetHashCode ();
}
- [Category ("!INTERPRETER")]
public static int test_0_unbox_trampoline2 () {
int i = 12;
object o = i;
return 0;
}
- [Category ("!INTERPRETER")]
public static int test_0_multi_array_cast () {
Duper[,] d = new Duper [1, 1];
object[,] o = d;
public static int test_0_vector_array_cast () {
Array arr1 = Array.CreateInstance (typeof (int), new int[] {1}, new int[] {0});
Array arr2 = Array.CreateInstance (typeof (int), new int[] {1}, new int[] {10});
+ Array arr5 = Array.CreateInstance (typeof (string), new int[] {1}, new int[] {10});
if (arr1.GetType () != typeof (int[]))
return 1;
if (arr2 is int[])
return 4;
+ var as_object_arr = arr5 as object [];
+ if (as_object_arr != null)
+ return 5;
int [,] [] arr3 = new int [1, 1] [];
object o = arr3;
return 2;
}
+ class InstanceDelegateTest {
+ public int a;
+
+ public int return_field () {
+ return a;
+ }
+ }
+
+ public static int test_2_instance_delegate_with_field () {
+ InstanceDelegateTest t = new InstanceDelegateTest () { a = 1337 };
+ GetIntDel del = new GetIntDel (t.return_field);
+ int v = del ();
+ if (v != 1337)
+ return 0;
+ return 2;
+ }
+
interface IFaceVirtualDel {
int return_field ();
}
}
}
- [Category ("!INTERPRETER")]
public static int test_42_vtype_delegate () {
var s = new VtypeVirtualDelStruct () { f = 42 };
Func<int> f = s.return_field_nonvirt;
return f ();
}
- [Category ("!INTERPRETER")]
public static int test_42_vtype_virtual_delegate () {
IFaceVirtualDel s = new VtypeVirtualDelStruct () { f = 42 };
Func<int> f = s.return_field;
return f ();
}
- [Category ("!INTERPRETER")]
public static int test_1_store_decimal () {
decimal[,] a = {{1}};
return 0;
}
+ static Nullable<bool> s_nullb;
+ static AStruct s_struct1;
+
+ /* test if VES uses correct sizes for value type write to static field */
+ public static int test_0_static_nullable_bool () {
+ s_struct1 = new AStruct (0x1337dead);
+ s_nullb = true;
+ /* make sure that the write to s_nullb didn't smash the value after it */
+ if (s_struct1.i != 0x1337dead)
+ return 2;
+ return 0;
+ }
+
public static int test_71_long_shift_right () {
ulong value = 38654838087;
int x = 0;
return 0;
}
- [Category ("!INTERPRETER")]
static int test_0_array_get_set_soft_float () {
float[,] arr = new float [2, 2];
arr [0, 0] = 256f;
return mInstance;
}
- [Category ("!INTERPRETER")]
static int test_0_synchronized () {
getInstance ();
return 0;
}
}
- [Category ("!INTERPRETER")]
public static int test_0_delegate_to_virtual_generic_on_ifaces () {
IComparer2 c = new AClass ();
enum Mine { One, Two }
- [Category ("!INTERPRETER")]
public static int test_0_enum_gethashcode_opt () {
int sum = 0;
for (int i = 0; i < 1000000; ++i)
return 0;
}
+
+ public static int test_0_typedref () {
+ int i = 5;
+ System.TypedReference r = __makeref(i);
+ System.Type t = __reftype(r);
+
+ if (t != typeof (int))
+ return 1;
+ int j = __refvalue(r, int);
+ if (j != 5)
+ return 2;
+
+ try {
+ object o = __refvalue (r, object);
+ } catch (InvalidCastException) {
+ }
+
+ return 0;
+ }
}
#if __MOBILE__