[Mono-dev] gmcs compiler error

Marek Safar marek.safar at seznam.cz
Thu Dec 3 17:26:25 EST 2009


Hi Robert,
>
> I’ve tried to compile my code using gmcs and I get the following epic 
> stack trace failure, but I don’t really know why I get this error or 
> how I’d go about resolving it? Can anyone make sense of this for me?
>
It makes sense to me. My guess is that the issue has already been 
addressed in the recent versions. If you are using a version older than 
2.4 upgrade your Mono otherwise please fill Mono bug report.

Thanks
Marek

> Exception caught by the compiler while emitting:
>
> Block that caused the problem begin at: .\HashTable.cs(348,9):
>
> System.NullReferenceException: Object reference not set to an instance 
> of an object
>
> Internal compiler error at .\HashTable.cs(347,49):: exception caught 
> while emitting MethodBuilder 
> [HashTable`2::System.Collections.Generic.IEnumerable<TValue>.GetEnumerator]
>
> Unhandled Exception: System.NullReferenceException: Object reference 
> not set to an instance of an object
>
> at Mono.CSharp.AnonymousMethodBody.DoCreateMethodHost 
> (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.AnonymousMethodBody.Emit (Mono.CSharp.EmitContext ec) 
> [0x00000]
>
> at Mono.CSharp.Argument.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Invocation.EmitArguments (Mono.CSharp.EmitContext ec, 
> System.Collections.ArrayList arguments, Boolean dup_args, 
> Mono.CSharp.LocalTemporary this_arg) [0x00000]
>
> at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, 
> Boolean is_base, Mono.CSharp.Expression instance_expr, 
> System.Reflection.MethodBase method, System.Collections.ArrayList 
> Arguments, Location loc, Boolean dup_args, Boolean omit_args) [0x00000]
>
> at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, 
> Boolean is_base, Mono.CSharp.Expression instance_expr, 
> System.Reflection.MethodBase method, System.Collections.ArrayList 
> Arguments, Location loc) [0x00000]
>
> at Mono.CSharp.MethodGroupExpr.EmitCall (Mono.CSharp.EmitContext ec, 
> System.Collections.ArrayList arguments) [0x00000]
>
> at Mono.CSharp.ExtensionMethodGroupExpr.EmitCall 
> (Mono.CSharp.EmitContext ec, System.Collections.ArrayList arguments) 
> [0x00000]
>
> at Mono.CSharp.Invocation.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, 
> Boolean is_base, Mono.CSharp.Expression instance_expr, 
> System.Reflection.MethodBase method, System.Collections.ArrayList 
> Arguments, Location loc, Boolean dup_args, Boolean omit_args) [0x00000]
>
> at Mono.CSharp.Invocation.EmitCall (Mono.CSharp.EmitContext ec, 
> Boolean is_base, Mono.CSharp.Expression instance_expr, 
> System.Reflection.MethodBase method, System.Collections.ArrayList 
> Arguments, Location loc) [0x00000]
>
> at Mono.CSharp.MethodGroupExpr.EmitCall (Mono.CSharp.EmitContext ec, 
> System.Collections.ArrayList arguments) [0x00000]
>
> at Mono.CSharp.Invocation.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Return.DoEmit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Statement.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Block.DoEmit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.Block.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.ExplicitBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.ToplevelBlock.Emit (Mono.CSharp.EmitContext ec) [0x00000]
>
> at Mono.CSharp.EmitContext.EmitResolvedTopBlock 
> (Mono.CSharp.ToplevelBlock block, Boolean unreachable) [0x00000]
>
> at Mono.CSharp.EmitContext.EmitTopBlock (IMethodData md, 
> Mono.CSharp.ToplevelBlock block) [0x00000]
>
> My only thought is that the class in question defines itself as being 
> IEnumerable over two different types and that since this is the second 
> of the two definitions of GetEnumerator the compiler fails? Is this 
> something that I can’t do under Mono?
>
> Thanks,
>
> Rob Vesse
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-devel-list
>   



More information about the Mono-devel-list mailing list