Merge pull request #2453 from kumpera/fix_ji_free
[mono.git] / mono / mini / objects.cs
index 3de372c89d034a04764fadff0a7140974f750e7a..c6837933d3f5203420b50c086c7645ae8cbd1a85 100644 (file)
@@ -1686,6 +1686,47 @@ ncells ) {
                }
                return 0;
        }
+
+       struct Struct16 {
+               public int a, b, c, d;
+       }
+
+       [MethodImplAttribute (MethodImplOptions.NoInlining)]
+       static int pass_struct16 (object o0, object o2, object o3, object o4, object o5, object o6, object o7, Struct16 o8) {
+               // This disables LLVM
+               try {
+               } catch {
+               }
+               return o8.a;
+       }
+
+       [MethodImplAttribute (MethodImplOptions.NoInlining)]
+       static int pass_struct16 (object o0, object o2, object o3, object o6, object o7, Struct16 o8) {
+               return pass_struct16 (o0, o2, null, o3, null, o6, o7, o8);
+       }
+
+       public static int test_42_pass_16byte_struct_split () {
+               return pass_struct16 (null, null, null, null, null, new Struct16 () { a = 42 });
+       }
+
+       public interface IComparer2
+       {
+               Type foo<T> ();
+       }
+
+       public class AClass : IComparer2 {
+               public Type foo<T> () {
+                       return typeof(T);
+               }
+       }
+
+       public static int test_0_delegate_to_virtual_generic_on_ifaces () {
+               IComparer2 c = new AClass ();
+
+               Func<Type> f = c.foo<string>;
+               return f () == typeof(string) ? 0 : 1;
+       }
+
 }
 
 #if __MOBILE__