https://bugzilla.novell.com/show_bug.cgi?id=633674
https://bugzilla.novell.com/show_bug.cgi?id=633674#c0 Summary: (d)mcs crash when using lots of generic types in an IEnumerable generator method Classification: Mono Product: Mono: Compilers Version: SVN Platform: Other OS/Version: OES - Linux Status: NEW Severity: Normal Priority: P5 - None Component: C# AssignedTo: [email protected] ReportedBy: [email protected] QAContact: [email protected] Found By: --- Blocker: --- User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.125 Safari/533.4 (d)mcs crash with the following stack trace: Internal compiler error at fail-generic.cs(24,41):: exception caught while emitting MethodBuilder [<GetEnumerable>c__Iterator0`3::MoveNext] Unhandled Exception: System.ArgumentException: The specified field must be declared on a generic type definition. Parameter name: field at System.Reflection.Emit.TypeBuilder.GetField (System.Type type, System.Reflection.FieldInfo field) [0x00072] in /home/jeremie/mono/mono/mcs/class/corlib/System.Reflection.Emit/TypeBuilder.cs:1893 at Mono.CSharp.FieldSpec.GetMetaInfo () [0x0002d] in /home/jeremie/mono/mono/mcs/mcs/field.cs:292 at Mono.CSharp.EmitContext.Emit (OpCode opcode, Mono.CSharp.FieldSpec field) [0x00023] in /home/jeremie/mono/mono/mcs/mcs/codegen.cs:468 at Mono.CSharp.FieldExpr.Emit (Mono.CSharp.EmitContext ec, Boolean leave_copy) [0x00106] in /home/jeremie/mono/mono/mcs/mcs/ecore.cs:4680 at Mono.CSharp.FieldExpr.Emit (Mono.CSharp.EmitContext ec) [0x00000] in /home/jeremie/mono/mono/mcs/mcs/ecore.cs:4728 at Mono.CSharp.Expression.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00000] in /home/jeremie/mono/mono/mcs/mcs/ecore.cs:521 at Mono.CSharp.Binary.EmitBranchable (Mono.CSharp.EmitContext ec, Label target, Boolean on_true) [0x00163] in /home/jeremie/mono/mono/mcs/mcs/expression.cs:3479 at Mono.CSharp.If.DoEmit (Mono.CSharp.EmitContext ec) [0x00054] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:229 at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x0000c] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:67 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x0004d] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2386 at Mono.CSharp.Do.DoEmit (Mono.CSharp.EmitContext ec) [0x00034] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:314 at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x0000c] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:67 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x0004d] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2386 at Mono.CSharp.While.DoEmit (Mono.CSharp.EmitContext ec) [0x000b3] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:430 at Mono.CSharp.While.Emit (Mono.CSharp.EmitContext ec) [0x00000] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:446 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x0004d] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2386 at Mono.CSharp.TryFinally.EmitTryBody (Mono.CSharp.EmitContext ec) [0x00000] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:4663 at Mono.CSharp.ExceptionStatement.DoEmit (Mono.CSharp.EmitContext ec) [0x000d1] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:3957 at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x0000c] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:67 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.Iterator.EmitMoveNext (Mono.CSharp.EmitContext ec, Mono.CSharp.Block original_block) [0x00197] in /home/jeremie/mono/mono/mcs/mcs/iterators.cs:681 at Mono.CSharp.IteratorStatement.DoEmit (Mono.CSharp.EmitContext ec) [0x00000] in /home/jeremie/mono/mono/mcs/mcs/iterators.cs:154 at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x0000c] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:67 at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00007] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2220 at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x0001e] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2230 at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x0004d] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2386 at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00030] in /home/jeremie/mono/mono/mcs/mcs/statement.cs:2939 at Mono.CSharp.MethodData.Emit (Mono.CSharp.DeclSpace parent) [0x000d1] in /home/jeremie/mono/mono/mcs/mcs/method.cs:1878 at Mono.CSharp.MethodOrOperator.Emit () [0x001a9] in /home/jeremie/mono/mono/mcs/mcs/method.cs:612 at Mono.CSharp.Method.Emit () [0x0010d] in /home/jeremie/mono/mono/mcs/mcs/method.cs:1120 Reproducible: Always Steps to Reproduce: Try to compile attached test case (e.g. dmcs /t:library fail-generic.cs) Actual Results: Compiler crash Expected Results: Successful compilation -- 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 - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
