Author: ankit
Date: 2006-01-13 17:22:10 -0500 (Fri, 13 Jan 2006)
New Revision: 55557

Added:
   trunk/mcs/ilasm/tests/gen-instr1.il
Modified:
   trunk/mcs/ilasm/codegen/ChangeLog
   trunk/mcs/ilasm/codegen/GenericParamRef.cs
   trunk/mcs/ilasm/tests/ChangeLog
Log:
In ilasm/tests:

        * gen-instr1.il: New. Test for using GenericParams as operands to
        type instructions.

In ilasm/codegen:

        * GenericParamRef.cs (GenericParamRef.Resolve): Set PeapiType of the 
instance
        to the cached one.



Modified: trunk/mcs/ilasm/codegen/ChangeLog
===================================================================
--- trunk/mcs/ilasm/codegen/ChangeLog   2006-01-13 22:14:10 UTC (rev 55556)
+++ trunk/mcs/ilasm/codegen/ChangeLog   2006-01-13 22:22:10 UTC (rev 55557)
@@ -1,3 +1,8 @@
+2006-01-14  Ankit Jain  <[EMAIL PROTECTED]>
+
+       * GenericParamRef.cs (GenericParamRef.Resolve): Set PeapiType of the 
instance
+       to the cached one.
+
 2006-01-13  Ankit Jain  <[EMAIL PROTECTED]>
 
        * GenericParamRef.cs (GenericParamRef.Resolve): Ensure no duplicate

Modified: trunk/mcs/ilasm/codegen/GenericParamRef.cs
===================================================================
--- trunk/mcs/ilasm/codegen/GenericParamRef.cs  2006-01-13 22:14:10 UTC (rev 
55556)
+++ trunk/mcs/ilasm/codegen/GenericParamRef.cs  2006-01-13 22:22:10 UTC (rev 
55557)
@@ -69,9 +69,14 @@
                                 return;
 
                         string key = param.Type.ToString () + 
param.Index.ToString ();
-                        if (param_table [key] == null) {
+                        PEAPI.GenParam val = (PEAPI.GenParam) param_table 
[key];
+                        if (val == null) {
                                 code_gen.PEFile.AddGenericParam (param);
                                 param_table [key] = param;
+                        } else {
+                                /* Set this instance's "type" to the cached
+                                   PEAPI.GenParam */
+                                type = (PEAPI.GenParam) val;
                         }
 
                         is_added = true;

Modified: trunk/mcs/ilasm/tests/ChangeLog
===================================================================
--- trunk/mcs/ilasm/tests/ChangeLog     2006-01-13 22:14:10 UTC (rev 55556)
+++ trunk/mcs/ilasm/tests/ChangeLog     2006-01-13 22:22:10 UTC (rev 55557)
@@ -1,3 +1,8 @@
+2006-01-14  Ankit Jain  <[EMAIL PROTECTED]>
+
+       * gen-instr1.il: New. Test for using GenericParams as operands to
+       type instructions.
+
 2006-01-11  Ankit Jain  <[EMAIL PROTECTED]>
 
        * gen-nested2.il: New.

Added: trunk/mcs/ilasm/tests/gen-instr1.il
===================================================================
--- trunk/mcs/ilasm/tests/gen-instr1.il 2006-01-13 22:14:10 UTC (rev 55556)
+++ trunk/mcs/ilasm/tests/gen-instr1.il 2006-01-13 22:22:10 UTC (rev 55557)
@@ -0,0 +1,48 @@
+// Test for type parameter as an operand for
+// a type instr
+// Here, initobj and box have operand : !0 
+
+.assembly extern mscorlib
+{
+  .ver 2:0:0:0
+}
+.assembly 'gpr'
+{
+  .custom instance void class 
[mscorlib]System.Runtime.CompilerServices.RuntimeCompatibilityAttribute::.ctor()
 =  (
+               01 00 01 00 54 02 16 57 72 61 70 4E 6F 6E 45 78   // 
....T..WrapNonEx
+               63 65 70 74 69 6F 6E 54 68 72 6F 77 73 01       ) // 
ceptionThrows.
+
+  .ver  0:0:0:0
+}
+.module gpr.dll
+
+  .class private auto ansi beforefieldinit g`1<T>
+       extends [mscorlib]System.Object
+  {
+    .method public hidebysig  specialname  rtspecialname 
+           instance default void .ctor ()  cil managed 
+    {
+       .maxstack 8
+       IL_0000:  ldarg.0 
+       IL_0001:  call instance void object::.ctor()
+       IL_0006:  ret 
+    }
+
+    .method public static  hidebysig 
+           default void foo ()  cil managed 
+    {
+       .maxstack 2
+       .locals init (
+               !0      V_0,
+               object  V_1,
+               !0 V_2)
+       IL_0000:  ldloca.s 2
+       IL_0002:  initobj !0
+       IL_0008:  ldloc.2 
+       IL_0009:  box !0
+       IL_000e:  stloc.1 
+       IL_000f:  ret 
+    }
+
+  }
+

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to