class Tests {
- static int Main () {
- return TestDriver.RunTests (typeof (Tests));
+ public static int Main (string[] args) {
+ return TestDriver.RunTests (typeof (Tests), args);
}
public static int test_0_return () {
}
public static int test_0_cond_branch_side_effects () {
counter = 5;
- if (WriteStuff());
+ if (WriteStuff()) {
+ }
if (counter == 10)
return 0;
return 1;
return 1;
}
+ struct AStruct2 {
+ public int i;
+ public int j;
+ }
+
+ static float pass_vtype_return_float (AStruct2 s) {
+ return s.i + s.j == 6 ? 1.0f : -1.0f;
+ }
+
+ public static int test_0_vtype_arg_soft_float () {
+ return pass_vtype_return_float (new AStruct2 () { i = 2, j = 4 }) > 0.0 ? 0 : 1;
+ }
+
static int range_check_strlen (int i, string s) {
if (i < 0 || i > s.Length)
return 1;
return array [1].val;
}
+ /* mcs can't compile this (#646744) */
+#if FALSE
static void InitMe (out Gamma noMercyWithTheStack) {
noMercyWithTheStack = new Gamma ();
}
return 1;
return 0;
}
+#endif
+
+ struct VTypePhi {
+ public int i;
+ }
+
+ static int vtype_phi (VTypePhi v1, VTypePhi v2, bool first) {
+ VTypePhi v = first ? v1 : v2;
+
+ return v.i;
+ }
+
+ static int test_0_vtype_phi ()
+ {
+ VTypePhi v1 = new VTypePhi () { i = 1 };
+ VTypePhi v2 = new VTypePhi () { i = 2 };
+
+ if (vtype_phi (v1, v2, true) != 1)
+ return 1;
+ if (vtype_phi (v1, v2, false) != 2)
+ return 2;
+
+ return 0;
+ }
+
+ [MethodImplAttribute (MethodImplOptions.NoInlining)]
+ static void UseValue (int index)
+ {
+ }
+
+ [MethodImplAttribute (MethodImplOptions.NoInlining)]
+ static bool IsFalse ()
+ {
+ return false;
+ }
+
+ static int test_0_llvm_moving_faulting_loads ()
+ {
+ int[] indexes = null;
+
+ if (IsFalse ()) {
+ indexes = new int[0];
+ }
+
+ while (IsFalse ()) {
+ UseValue (indexes[0]);
+ UseValue (indexes[0]);
+ }
+
+ return 0;
+ }
+
+ public static bool flag;
+
+ class B {
+
+ internal static B[] d;
+
+ static B () {
+ flag = true;
+ }
+ }
+
+ [MethodImplAttribute (MethodImplOptions.NoInlining)]
+ static int regress_679467_inner () {
+ if (flag == true)
+ return 1;
+ var o = B.d;
+ var o2 = B.d;
+ return 0;
+ }
+
+ /*
+ * FIXME: This fails with AOT #703317.
+ */
+ /*
+ static int test_0_multiple_cctor_calls_regress_679467 () {
+ flag = false;
+ return regress_679467_inner ();
+ }
+ */
+
+ static int test_0_char_ctor () {
+ string s = new String (new char[] { 'A', 'B' }, 0, 1);
+ return 0;
+ }
+
+ static object mInstance = null;
+
+ [MethodImpl(MethodImplOptions.Synchronized)]
+ public static object getInstance() {
+ if (mInstance == null)
+ mInstance = new object();
+ return mInstance;
+ }
+
+ static int test_0_synchronized () {
+ getInstance ();
+ return 0;
+ }
+
+ struct BStruct {
+ public Type t;
+ }
+
+ class Del<T> {
+ public static BStruct foo () {
+ return new BStruct () { t = typeof (T) };
+ }
+ }
+
+ delegate BStruct ADelegate ();
+
+ static int test_0_regress_10601 () {
+ var act = (ADelegate)(Del<string>.foo);
+ BStruct b = act ();
+ if (b.t != typeof (string))
+ return 1;
+ return 0;
+ }
+
+ static int test_0_regress_11058 () {
+ int foo = -252674008;
+ int foo2 = (int)(foo ^ 0xF0F0F0F0); // = 28888
+ var arr = new byte[foo2].Length;
+ return 0;
+ }
+
+ public static void do_throw () {
+ throw new Exception ();
+ }
+
+ [MethodImplAttribute (MethodImplOptions.NoInlining)]
+ static void empty () {
+ }
+
+ // #11297
+ public static int test_0_llvm_inline_throw () {
+ try {
+ empty ();
+ } catch (Exception ex) {
+ do_throw ();
+ }
+
+ return 0;
+ }
}