2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Wed, 27 Feb 2008 16:45:52 +0000 (16:45 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Wed, 27 Feb 2008 16:45:52 +0000 (16:45 -0000)
* valid_refanyval.il: New test for the refanyval opcode.

*  invalid_refanyval_null_stack_top.il: Same.

*  invalid_refanyval_invalid_stack_top.il: Same.

svn path=/trunk/mono/; revision=96797

mono/tests/verifier/ChangeLog
mono/tests/verifier/invalid_refanyval_invalid_stack_top.il [new file with mode: 0644]
mono/tests/verifier/invalid_refanyval_null_stack_top.il [new file with mode: 0644]
mono/tests/verifier/valid_refanyval.il [new file with mode: 0644]

index 6cd5c30895fba20435e33d073cc7574d4c226572..f1b763033c4d2b840e499680e885919a1c09c684 100644 (file)
@@ -1,3 +1,11 @@
+2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
+
+       * valid_refanyval.il: New test for the refanyval opcode.
+
+       *  invalid_refanyval_null_stack_top.il: Same.
+
+       *  invalid_refanyval_invalid_stack_top.il: Same.
+
 2008-02-27 Rodrigo Kumpera <rkumpera@novell.com>
 
        * valid_arglist.il: New test for the arglist opcode.
diff --git a/mono/tests/verifier/invalid_refanyval_invalid_stack_top.il b/mono/tests/verifier/invalid_refanyval_invalid_stack_top.il
new file mode 100644 (file)
index 0000000..1361eb4
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldc.i4.0
+
+               refanyval int32
+               ldind.i4
+
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}
diff --git a/mono/tests/verifier/invalid_refanyval_null_stack_top.il b/mono/tests/verifier/invalid_refanyval_null_stack_top.il
new file mode 100644 (file)
index 0000000..1361eb4
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldc.i4.0
+
+               refanyval int32
+               ldind.i4
+
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}
diff --git a/mono/tests/verifier/valid_refanyval.il b/mono/tests/verifier/valid_refanyval.il
new file mode 100644 (file)
index 0000000..65a311e
--- /dev/null
@@ -0,0 +1,45 @@
+//
+// vararg.il: Tests for varargs and refany instructions
+//
+
+.assembly extern mscorlib {
+}
+
+.assembly extern TestDriver {
+}
+
+.assembly 'refanyval' {
+}
+
+.module 'refanyval.exe'
+
+.class public auto ansi Tests extends [mscorlib]System.Object {
+       .method public static vararg int32 varargtest_refany (int32 last) cil managed {
+               .maxstack 8
+               .locals init (valuetype [mscorlib]System.ArgIterator it)
+
+               ldloca.s it
+               arglist
+               call instance void [mscorlib]System.ArgIterator::.ctor (valuetype [mscorlib]System.RuntimeArgumentHandle)
+
+               ldloca.s it
+               call instance typedref [mscorlib]System.ArgIterator::GetNextArg ()
+               refanyval int32
+               ldind.i4
+
+               ret
+       }       
+
+       .method public static int32 Main () cil managed {
+               .maxstack 16
+               .entrypoint
+
+               ldc.i4 1
+               ldc.i4 0
+               call vararg int32 Tests::varargtest_refany (int32, ..., int32)
+
+
+        ret
+
+       }
+}