[Mono-bugs] [Bug 360796] New: Internal compiler error with large methods
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Mon Feb 11 16:49:04 EST 2008
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 at lists.ximian.com
ReportedBy: cmarshall at pacificbiosciences.com
QAContact: mono-bugs at 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.
More information about the mono-bugs
mailing list