2009-12-09 Jb Evain <jbevain@novell.com>
authorJb Evain <jbevain@gmail.com>
Wed, 9 Dec 2009 19:26:51 +0000 (19:26 -0000)
committerJb Evain <jbevain@gmail.com>
Wed, 9 Dec 2009 19:26:51 +0000 (19:26 -0000)
* ILGeneratorTest.cs: add a test for Emit(OpCode,LocalBuilder)
when the opcode is not related to locals.

svn path=/trunk/mcs/; revision=147939

mcs/class/corlib/Test/System.Reflection.Emit/ChangeLog
mcs/class/corlib/Test/System.Reflection.Emit/ILGeneratorTest.cs

index db91a296b1aa97817f828a1b1c9168a6622ff1a8..37006c2efac371fe370dba1b642aa76666a9c5a9 100644 (file)
@@ -1,3 +1,8 @@
+2009-12-09  Jb Evain  <jbevain@novell.com>
+
+       * ILGeneratorTest.cs: add a test for Emit(OpCode,LocalBuilder)
+       when the opcode is not related to locals.
+
 2009-10-30  Sebastien Pouliot  <sebastien@ximian.com>
 
        * MethodBuilderTest.cs: Add (copy from TypeBuilderTest) test 
index f23b53813df1f9860f7ff4826177d93cabb50e51..c300d3d293079e4bca40b8a7fefd2a0cc38ae65c 100644 (file)
@@ -426,5 +426,23 @@ namespace MonoTests.System.Reflection.Emit
                                throw tie.InnerException;
                        }
                }
+
+               [Test]
+               public void TestEmitLocalInfoWithNopOpCode ()
+               {
+                       var method_builder = tb.DefineMethod ("linop", MethodAttributes.Public | MethodAttributes.Static, typeof (bool), Type.EmptyTypes);
+                       il_gen = method_builder.GetILGenerator ();
+
+                       var local = il_gen.DeclareLocal (typeof (int));
+                       il_gen.Emit (OpCodes.Nop, local);
+                       il_gen.Emit (OpCodes.Ldc_I4_1);
+                       il_gen.Emit (OpCodes.Ret);
+
+                       var type = tb.CreateType ();
+                       var method = type.GetMethod ("linop");
+
+                       Assert.IsNotNull (method);
+                       Assert.IsTrue ((bool) method.Invoke (null, new object [0]));
+               }
        }
 }