[Mono-bugs] [Bug 61990][Wis] New - managed c++ __pin pointers metadata not parsed properly
bugzilla-daemon@bugzilla.ximian.com
bugzilla-daemon@bugzilla.ximian.com
Tue, 27 Jul 2004 00:45:51 -0400 (EDT)
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 mgambrell@gmail.com.
http://bugzilla.ximian.com/show_bug.cgi?id=61990
--- shadow/61990 2004-07-27 00:45:51.000000000 -0400
+++ shadow/61990.tmp.13526 2004-07-27 00:45:51.000000000 -0400
@@ -0,0 +1,58 @@
+Bug#: 61990
+Product: Mono: Runtime
+Version: unspecified
+OS:
+OS Details:
+Status: NEW
+Resolution:
+Severity:
+Priority: Wishlist
+Component: misc
+AssignedTo: mono-bugs@ximian.com
+ReportedBy: mgambrell@gmail.com
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+Summary: managed c++ __pin pointers metadata not parsed properly
+
+Description of self:
+This is my first bugreport anywhere ever.
+
+Description of Problem:
+Microsoft's c++ compiler is generating some metadata that is understood by
+ms.net but not by mono. This happens in cases where a pinning pointer is
+used.
+
+Steps to reproduce the problem:
+test.cpp:
+#using <mscorlib.dll>
+void test(){
+ char __pin* ptr = 0;
+}
+
+>cl /clr /LD test.cpp
+>ildasm test.dll
+>monodis test.dll
+
+Expected Results:
+here is what ildasm generates:
+
+.locals init (
+ int8 modopt([Microsoft.VisualC]Microsoft.VisualC.NoSignSpecifiedModifier)
+ & pinned
+ modreq([mscorlib]System.Runtime.CompilerServices.IsVolatile)
+ V_0)
+
+Actual Results:
+ildasm correctly disassembles the assembly. monodis will choke with the
+error:
+
+** ERROR **: type 0x20 not handled in do_mono_metadata_parse_type
+aborting...
+
+mono chokes the same way if this assembly is loaded up.
+
+Additional Information:
+this appears related to bugs 49802 and 30812, and the behavior of
+mono_metadata_parse_type().