[Mono-bugs] [Bug 30544][Wis] New - Decimal array initializers crashes ArrayCreation.MakeByteBlob

bugzilla-daemon@rocky.ximian.com bugzilla-daemon@rocky.ximian.com
18 Sep 2002 19:42:53 -0000


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 andy@nobugs.org.

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

--- shadow/30544	Wed Sep 18 15:42:52 2002
+++ shadow/30544.tmp.12859	Wed Sep 18 15:42:52 2002
@@ -0,0 +1,54 @@
+Bug#: 30544
+Product: Mono/MCS
+Version: unspecified
+OS: 
+OS Details: 
+Status: NEW   
+Resolution: 
+Severity: 
+Priority: Wishlist
+Component: Misc
+AssignedTo: mono-bugs@ximian.com                            
+ReportedBy: andy@nobugs.org               
+QAContact: mono-bugs@ximian.com
+TargetMilestone: ---
+URL: 
+Cc: 
+Summary: Decimal array initializers crashes ArrayCreation.MakeByteBlob
+
+Build the following under the latest cvs mcs:
+
+class X
+{
+	public static void Main() 
+	{
+	        decimal[] d = {0m, 0m, 0m};
+	}
+}
+
+It dies with an unhandled exception (see below).  It works fine if the
+array is initialized with zero, one or two decimals, but crashes with three
+or more.
+
+Unhandled Exception: System.Exception: Unrecognized type in MakeByteBlob
+in <0x00cb9> 00 Mono.CSharp.ArrayCreation:MakeByteBlob
+(System.Collections.ArrayList,System.Type,Mono.CSharp.Location)
+in <0x00050> 00 Mono.CSharp.ArrayCreation:EmitStaticInitializers
+(Mono.CSharp.EmitContext,bool)
+in <0x001ed> 00 Mono.CSharp.ArrayCreation:DoEmit (Mono.CSharp.EmitContext,bool)
+in <0x00015> 00 Mono.CSharp.ArrayCreation:Emit (Mono.CSharp.EmitContext)
+in <0x00049> 00 Mono.CSharp.LocalVariableReference:EmitAssign
+(Mono.CSharp.EmitContext,Mono.CSharp.Expression)
+in <0x001e6> 00 Mono.CSharp.Assign:Emit (Mono.CSharp.EmitContext,bool)
+in <0x00015> 00 Mono.CSharp.Assign:EmitStatement (Mono.CSharp.EmitContext)
+in <0x00086> 00 Mono.CSharp.StatementExpression:Emit (Mono.CSharp.EmitContext)
+in <0x00416> 00 Mono.CSharp.Block:Emit (Mono.CSharp.EmitContext)
+in <0x001a3> 00 Mono.CSharp.EmitContext:EmitTopBlock
+(Mono.CSharp.Block,Mono.CSharp.InternalParameters,Mono.CSharp.Location)
+in <0x005c5> 00 Mono.CSharp.MethodData:Emit
+(Mono.CSharp.TypeContainer,Mono.CSharp.Block,object)
+in <0x0001f> 00 Mono.CSharp.Method:Emit (Mono.CSharp.TypeContainer)
+in <0x0027b> 00 Mono.CSharp.TypeContainer:Emit ()
+in <0x004da> 00 Mono.CSharp.RootContext:EmitCode ()
+in <0x00732> 00 Mono.CSharp.Driver:MainDriver (string[])
+in <0x0000b> 00 Mono.CSharp.Driver:Main (string[])