https://bugzilla.novell.com/show_bug.cgi?id=360796
Summary: Internal compiler error with large methods Product: Mono: Compilers Version: SVN Platform: x86 OS/Version: Ubuntu Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: mono-bugs@lists.ximian.com ReportedBy: [EMAIL PROTECTED] QAContact: mono-bugs@lists.ximian.com Found By: --- Compiling a class that has a large method (approx 200 lines; many conditionals and calls into other classes) triggers an internal compiler error. I'll try turning this into a test case that I can share, but some info about the class and the method being compiled: * The class inherits from Form, through two superclasses. E.g., Form -> A -> B -> Class being compiled. * The method is the overridden OnLoad method. All classes in the chain override it. The error: Internal compiler error at <<FOO>>.cs(1356,33):: exception caught while emitting MethodBuilder [<<FOO>>::OnLoad] Unhandled Exception: Mono.CSharp.InternalErrorException: Helper class already defined! at Mono.CSharp.CompilerGeneratedClass.CheckMembersDefined () [0x00016] in /home/csm/Source/mcs/mcs/anonymous. cs:175 at Mono.CSharp.RootScopeInfo.CaptureThis () [0x00017] in /home/csm/Source/mcs/mcs/anonymous.cs:846 at Mono.CSharp.This.ResolveBase (Mono.CSharp.EmitContext ec) [0x00112] in /home/csm/Source/mcs/mcs/expression cs:6121 at Mono.CSharp.This.DoResolve (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/expression.c s:6156 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00067] in /home/csm/Sou rce/mcs/mcs/ecore.cs:472 at Mono.CSharp.FieldExpr.DoResolve (Mono.CSharp.EmitContext ec, Boolean lvalue_instance, Boolean out_access) [0x00083] in /home/csm/Source/mcs/mcs/ecore.cs:4534 at Mono.CSharp.FieldExpr.DoResolve (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/ecore.cs:4507 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00067] in /home/csm/Source/mcs/mcs/ecore.cs:472 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/ecore.cs:499 at Mono.CSharp.ArrayCreation.ResolveArrayElement (Mono.CSharp.EmitContext ec, Mono.CSharp.Expression element) [0x00000] in /home/csm/Source/mcs/mcs/expression.cs:5474 at Mono.CSharp.ArrayCreation.CheckIndices (Mono.CSharp.EmitContext ec, System.Collections.ArrayList probe, Int32 idx, Boolean specified_dims) [0x00155] in /home/csm/Source/mcs/mcs/expression.cs:5408 at Mono.CSharp.ArrayCreation.ResolveInitializers (Mono.CSharp.EmitContext ec) [0x00051] in /home/csm/Source/mcs/mcs/expression.cs:5500 at Mono.CSharp.ArrayCreation.DoResolve (Mono.CSharp.EmitContext ec) [0x00056] in /home/csm/Source/mcs/mcs/expression.cs:5564 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00067] in /home/csm/Source/mcs/mcs/ecore.cs:472 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/ecore.cs:499 at Mono.CSharp.MethodGroupExpr.VerifyArgumentsCompat (Mono.CSharp.EmitContext ec, System.Collections.ArrayList& arguments, Int32 arg_count, System.Reflection.MethodBase method, Boolean chose_params_expanded, Boolean may_fail, Location loc) [0x001f4] in /home/csm/Source/mcs/mcs/ecore.cs:4347 at Mono.CSharp.MethodGroupExpr.OverloadResolve (Mono.CSharp.EmitContext ec, System.Collections.ArrayList& Arguments, Boolean may_fail, Location loc) [0x00807] in /home/csm/Source/mcs/mcs/ecore.cs:4225 at Mono.CSharp.Invocation.DoResolveOverload (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/expression.cs:4402 at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.EmitContext ec) [0x000d0] in /home/csm/Source/mcs/mcs/expression.cs:4344 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags flags) [0x00067] in /home/csm/Source/mcs/mcs/ecore.cs:472 at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/ecore.cs:499 at Mono.CSharp.StringConcat.Emit (Mono.CSharp.EmitContext ec) [0x00007] in /home/csm/Source/mcs/mcs/expression.cs:3245 at Mono.CSharp.FieldExpr.EmitAssign (Mono.CSharp.EmitContext ec, Mono.CSharp.Expression source, Boolean leave_copy, Boolean prepare_for_load) [0x0006f] in /home/csm/Source/mcs/mcs/ecore.cs:4787 at Mono.CSharp.Assign.Emit (Mono.CSharp.EmitContext ec, Boolean is_statement) [0x00082] in /home/csm/Source/mcs/mcs/assign.cs:577 at Mono.CSharp.Assign.EmitStatement (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/assign.cs:593 at Mono.CSharp.StatementExpression.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in /home/csm/Source/mcs/mcs/statement.cs:703 at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x0000d] in /home/csm/Source/mcs/mcs/statement.cs:87 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00019] in /home/csm/Source/mcs/mcs/statement.cs:2278 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x000c7] in /home/csm/Source/mcs/mcs/statement.cs:2303 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00019] in /home/csm/Source/mcs/mcs/statement.cs:2278 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x000c7] in /home/csm/Source/mcs/mcs/statement.cs:2303 at Mono.CSharp.EmitContext.EmitResolvedTopBlock (Mono.CSharp.ToplevelBlock block, Boolean unreachable) [0x00006] in /home/csm/Source/mcs/mcs/codegen.cs:813 at Mono.CSharp.EmitContext.EmitTopBlock (IMethodData md, Mono.CSharp.ToplevelBlock block) [0x00037] in /home/csm/Source/mcs/mcs/codegen.cs:721 at Mono.CSharp.MethodData.Emit (Mono.CSharp.DeclSpace parent) [0x0009e] in /home/csm/Source/mcs/mcs/class.cs:5457 at Mono.CSharp.Method.Emit () [0x0009d] in /home/csm/Source/mcs/mcs/class.cs:4567 -- 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. _______________________________________________ mono-bugs maillist - mono-bugs@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-bugs