[Mono-bugs] [Bug 444271] New: Internal Compiler Error produced by Mono C# Compiler

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Wed Nov 12 12:09:08 EST 2008


https://bugzilla.novell.com/show_bug.cgi?id=444271


           Summary: Internal Compiler Error produced by Mono C# Compiler
           Product: Mono: Compilers
           Version: SVN
          Platform: 64bit
        OS/Version: Linux
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: C#
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: cbutor at gmail.com
         QAContact: mono-bugs at lists.ximian.com
                CC: billholmes54 at gmail.com
          Found By: Community User


Created an attachment (id=251681)
 --> (https://bugzilla.novell.com/attachment.cgi?id=251681)
Test program to reproduce Compiler Bug

When compiling the attached test program, the mono C# compiler produces an
internal compiler error.

This is a regression from the 2.0 release as confirmed by running the test
program on 2.0.

The stacktrace is as follows:

Exception caught by the compiler while emitting:
   Block that caused the problem begin at: CompilerTest.cs(24,25):
System.Exception: Trying to emit a local from a different ILGenerator.
Internal compiler error at CompilerTest.cs(23,25):: exception caught while
emitting MethodBuilder [<DetermineLinkedCells>c__AnonStorey1::<>m__0]

Unhandled Exception: System.Exception: Trying to emit a local from a different
ILGenerator.
  at System.Reflection.Emit.ILGenerator.Emit (OpCode opcode,
System.Reflection.Emit.LocalBuilder local) [0x00000]
  at Mono.CSharp.LocalTemporary.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.MemberExpr.EmitInstance (Mono.CSharp.EmitContext ec, Boolean
prepare_for_load) [0x00000]
  at Mono.CSharp.FieldExpr.Emit (Mono.CSharp.EmitContext ec, Boolean
leave_copy) [0x00000]
  at Mono.CSharp.HoistedVariable.Emit (Mono.CSharp.EmitContext ec, Boolean
leave_copy) [0x00000]
  at Mono.CSharp.VariableReference.Emit (Mono.CSharp.EmitContext ec, Boolean
leave_copy) [0x00000]
  at Mono.CSharp.VariableReference.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Argument.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Invocation.EmitArguments (Mono.CSharp.EmitContext ec,
System.Collections.ArrayList arguments, Boolean dup_args,
Mono.CSharp.LocalTemporary this_arg) [0x00000]
  at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, Boolean
is_base, Mono.CSharp.Expression instance_expr, System.Reflection.MethodBase
method, System.Collections.ArrayList Arguments, Location loc, Boolean dup_args,
Boolean omit_args) [0x00000]
  at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, Boolean
is_base, Mono.CSharp.Expression instance_expr, System.Reflection.MethodBase
method, System.Collections.ArrayList Arguments, Location loc) [0x00000]
  at Mono.CSharp.MethodGroupExpr.EmitCall (Mono.CSharp.EmitContext ec,
System.Collections.ArrayList arguments) [0x00000]
  at Mono.CSharp.Invocation.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Return.DoEmit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000]
  at Mono.CSharp.EmitContext.EmitResolvedTopBlock (Mono.CSharp.ToplevelBlock
block, Boolean unreachable) [0x00000]
  at Mono.CSharp.EmitContext.EmitTopBlock (IMethodData md,
Mono.CSharp.ToplevelBlock block) [0x00000]

Note that the test program is not runnable as it has been stripped into a
generic form.  This is for compilation testing only.  The commented out
statements do not effect compilation but should compile successfully after a
compiler fix.


-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list