[Mono-bugs] [Bug 78816][Nor] Changed - [gmcs] Generating invalid IL code

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Wed Jul 12 21:09:52 EDT 2006


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by miguel at ximian.com.

http://bugzilla.ximian.com/show_bug.cgi?id=78816

--- shadow/78816	2006-07-12 17:29:28.000000000 -0400
+++ shadow/78816.tmp.31315	2006-07-12 21:09:52.000000000 -0400
@@ -48,6 +48,24 @@
 
 ------- Additional Comments From miguel at ximian.com  2006-07-12 17:29 -------
 This is actually a verifier regression;  The code generated by the
 compiler is correct.
 
 The code generated by gmcs verifies and runs on MS.NET 
+
+------- Additional Comments From miguel at ximian.com  2006-07-12 21:09 -------
+I did some digging.
+
+The problem is that the verifier uses the can_access_method assuming
+the .NET 1.1 semantics, that is that the called method will have its
+class set to the BaseClass (this is how it appears on the CIL
+instruction stream).
+
+But instead, since this method is generic, after the inflation the
+class for the method is not the BaseClass, but the ChildClass, which
+triggers this failure.
+
+The issue is that we loose the information that the call is being done
+to the abstract method in the current class.
+
+A fix would be to return the method after decoding before the
+inflation, and do the checks against that one.


More information about the mono-bugs mailing list