[Mono-bugs] [Bug 608007] New: GMCS crash when dealing with very strange LINQ
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri May 21 16:34:17 EDT 2010
http://bugzilla.novell.com/show_bug.cgi?id=608007
http://bugzilla.novell.com/show_bug.cgi?id=608007#c0
Summary: GMCS crash when dealing with very strange LINQ
Classification: Mono
Product: Mono: Compilers
Version: unspecified
Platform: All
OS/Version: All
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: Theoretically.x64 at gmail.com
QAContact: mono-bugs at lists.ximian.com
Found By: Other
Blocker: ---
Created an attachment (id=363908)
--> (http://bugzilla.novell.com/attachment.cgi?id=363908)
This is the source code that causes GMCS to crash.
Description of Problem: I use C# for programming contests and one of the pieces
of code I wrote compiles perfectly under Microsoft .NET but crashes gmcs. This
is BAD code but its still a bit troublesome that it won't compile. I am doing
everything in a single LINQ statement.
Steps to reproduce the problem:
1. Compile the attached C# file with gmcs
Actual Results: Compiler crashes with a NullReferenceException
Expected Results: Compilation
How often does this happen? Every time
Additional Information: As I said this is BAD code but I was attempting to golf
the size of the program as much as possible. The output was given to me from
the
contest coordinator and judge. He is running mono 2.6.4 on Mac OS X 10.6.3
however this bug applies to Linux as well. Sorry for the lack of source lines
in the output.
Here is the output:
Internal compiler error at Disorder.cs(10,17):: exception caught while emitting
MethodBuilder [Program::Main]
Unhandled Exception: Mono.CSharp.InternalErrorException: Disorder.cs(32,44):
---> System.NullReferenceException: Object reference not set to an instance of
an object
at Mono.CSharp.ToplevelParameterInfo.get_ParameterType () [0x00000] in
<filename unknown>:0
at Mono.CSharp.ParameterReference.DoResolveBase (Mono.CSharp.ResolveContext
ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.ParameterReference.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.SimpleName.DoSimpleNameResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000] in <filename
unknown>:0
at Mono.CSharp.SimpleName.SimpleNameResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000] in <filename
unknown>:0
at Mono.CSharp.SimpleName.DoResolve (Mono.CSharp.ResolveContext ec, Boolean
intermediate) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.SimpleName.DoSimpleNameResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000] in <filename
unknown>:0
at Mono.CSharp.SimpleName.SimpleNameResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000] in <filename
unknown>:0
at Mono.CSharp.SimpleName.DoResolve (Mono.CSharp.ResolveContext ec, Boolean
intermediate) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.Linq.QueryExpression.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.ParenthesizedExpression.DoResolve (Mono.CSharp.ResolveContext
ec) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression right_side) [0x00000] in <filename unknown>:0
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.ResolveContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.Argument.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.Arguments.Resolve (Mono.CSharp.ResolveContext ec,
System.Boolean& dynamic) [0x00000] in <filename unknown>:0
at Mono.CSharp.Invocation.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.ContextualReturn.DoResolve (Mono.CSharp.BlockContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.ExitStatement.Resolve (Mono.CSharp.BlockContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent,
Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md)
[0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at Mono.CSharp.AnonymousMethodExpression.Compatible
(Mono.CSharp.ResolveContext ec, System.Type type) [0x00000] in <filename
unknown>:0
at Mono.CSharp.Convert.ImplicitConversionStandard (Mono.CSharp.ResolveContext
ec, Mono.CSharp.Expression expr, System.Type target_type, Location loc, Boolean
explicit_cast) [0x00000] in <filename unknown>:0
at Mono.CSharp.Convert.ExplicitConversionCore (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression expr, System.Type target_type, Location loc) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Convert.ExplicitConversion (Mono.CSharp.ResolveContext ec,
Mono.CSharp.Expression expr, System.Type target_type, Location loc) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Cast.DoResolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec, ResolveFlags
flags) [0x00000] in <filename unknown>:0
at Mono.CSharp.Expression.Resolve (Mono.CSharp.ResolveContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.Return.DoResolve (Mono.CSharp.BlockContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.ContextualReturn.DoResolve (Mono.CSharp.BlockContext ec)
[0x00000] in <filename unknown>:0
at Mono.CSharp.ExitStatement.Resolve (Mono.CSharp.BlockContext ec) [0x00000]
in <filename unknown>:0
at Mono.CSharp.Block.Resolve (Mono.CSharp.BlockContext ec) [0x00000] in
<filename unknown>:0
at Mono.CSharp.ToplevelBlock.Resolve (Mono.CSharp.FlowBranching parent,
Mono.CSharp.BlockContext rc, Mono.CSharp.ParametersCompiled ip, IMethodData md)
[0x00000] in <filename unknown>:0
--
Configure bugmail: http://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