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