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 [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=79660 --- shadow/79660 2006-10-14 05:02:44.000000000 -0400 +++ shadow/79660.tmp.14251 2006-10-14 05:02:44.000000000 -0400 @@ -0,0 +1,91 @@ +Bug#: 79660 +Product: Mono: Compilers +Version: 1.1 +OS: other +OS Details: Red Hat Enterprise Linux 4 +Status: NEW +Resolution: +Severity: +Priority: Normal +Component: C# +AssignedTo: [EMAIL PROTECTED] +ReportedBy: [EMAIL PROTECTED] +QAContact: [EMAIL PROTECTED] +TargetMilestone: --- +URL: +Cc: +Summary: Compilation of chained assignment in anonymous delegate context fails + +Compiling the following testcase succeeds with csc but fails with gmcs +(1.1.13.6): + + delegate void TestDelegate(); + + public class Test + { + static void Main() + { + uint a = 0; + uint b = 0; + + TestDelegate d = delegate { + // Compilation of chained assignment fails + a = b = 0; + Consume(a); + Consume(b); + }; + } + + static void Consume(uint x) + { + } + }; + +Steps to reproduce the problem: +1. gmcs testcase.cs + +Actual Results: + +Exception caught by the compiler while compiling: + Block that caused the problem begin at: testcase.cs(10,22): + Block being compiled: +[testcase.cs(10,31):,testcase.cs(15,5):] +System.NullReferenceException: Object reference not set to an instance of +an object +Exception caught by the compiler while compiling: + Block that caused the problem begin at: testcase.cs(5,15): + Block being compiled: [testcase.cs(10,5):,Internal(1,1):] +System.NullReferenceException: Object reference not set to an instance of +an object + +Unhandled Exception: System.NullReferenceException: Object reference not +set to an instance of an object +in <0x00122> Mono.CSharp.EmitContext:GetTemporaryLocal (System.Type t) +in <0x0006b> Mono.CSharp.LocalTemporary:.ctor (Mono.CSharp.EmitContext ec, +System.Type t, Boolean is_address) +in <0x00012> Mono.CSharp.LocalTemporary:.ctor (Mono.CSharp.EmitContext ec, +System.Type t) +in <0x008b2> Mono.CSharp.Assign:DoResolve (Mono.CSharp.EmitContext ec) +in <0x000e3> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec, +ResolveFlags flags) +in <0x00012> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec) +in <0x000d0> Mono.CSharp.Assign:DoResolve (Mono.CSharp.EmitContext ec) +in <0x000e3> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec, +ResolveFlags flags) +in <0x00012> Mono.CSharp.Expression:Resolve (Mono.CSharp.EmitContext ec) +in <0x00013> Mono.CSharp.ExpressionStatement:ResolveStatement +(Mono.CSharp.EmitContext ec) +in <0x0001f> Mono.CSharp.StatementExpression:Resolve +(Mono.CSharp.EmitContext ec) +in <0x001d9> Mono.CSharp.Block:Resolve (Mono.CSharp.EmitContext ec) +in <0x00122> Mono.CSharp.EmitContext:ResolveTopBlock +(Mono.CSharp.EmitContext anonymous_method_host, Mono.CSharp.ToplevelBlock +block, Mono.CSharp.Parameters ip, IMethodData md, System.Boolean unreachable) + +Expected Results: + +Successful compilation. + +How often does this happen? + +100 out of 100 times _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
