[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