[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().