Merge pull request #1225 from strawd/bug22307
[mono.git] / mono / mini / objects.cs
index 40c79e6280f38c5376fc57c0958b8ee60721e0d2..d2ef247a130a1c046d3aaff1d71d970a94dfafa7 100644 (file)
@@ -1625,6 +1625,48 @@ ncells ) {
        [MethodImplAttribute (MethodImplOptions.NoInlining)]
        static void t_14217_inner (BugStruct bug) {
     }
+
+       [StructLayout(LayoutKind.Sequential)]
+       public struct EmptyStruct {
+       }
+
+       class EmptyClass {
+               public static EmptyStruct s;
+       }
+
+       // #20349
+       static int test_0_empty_struct_as_static () {
+               var s = EmptyClass.s;
+               return 0;
+       }
+
+       // #25487
+       static int test_0_int_to_r4 () {
+               return int_to_r4_inner (255);
+       }
+
+       static int int_to_r4_inner (int value1) {
+               int sub = -value1;
+               float mult = sub * 1f;
+               if (mult != -255.0f)
+                       return 1;
+               else
+                       return 0;
+       }
+
+       struct HFA4D {
+               public double a, b, c, d;
+       }
+
+       static double arm64_hfa_on_stack_inner (double d1, double d2, double d3, double d4, double d5, double d6, double d7, double d8, HFA4D s) {
+               return s.a + s.b + s.c + s.d;
+       }
+
+       static int test_0_arm64_hfa_on_stack () {
+               var s = new HFA4D () { a = 1.0, b = 2.0, c = 3.0, d = 4.0 };
+               var res = arm64_hfa_on_stack_inner (1, 2, 3, 4, 5, 6, 7, 8, s);
+               return res == 10.0 ? 0 : 1;
+       }
 }
 
 #if MOBILE