[Mono-bugs] [Bug 536710] InvalidProgramException from using 'let' in query expression

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Sep 3 19:50:51 EDT 2009


http://bugzilla.novell.com/show_bug.cgi?id=536710

User vargaz at gmail.com added comment
http://bugzilla.novell.com/show_bug.cgi?id=536710#c1


Zoltan Varga <vargaz at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vargaz at gmail.com




--- Comment #1 from Zoltan Varga <vargaz at gmail.com>  2009-09-03 17:50:49 MDT ---
I think the problem is in BinaryExpression:EmitLiftedUserDefinedOperator (),
in this code:

            ec.EmitNullableGetValueOrDefault (left);
            ec.EmitNullableGetValueOrDefault (right);
            ec.EmitCall (method);
            ig.Emit (OpCodes.Br, done);

            ig.MarkLabel (ret_true);
            ig.Emit (OpCodes.Ldc_I4_1);
            ig.Emit (OpCodes.Br, done);

            ig.MarkLabel (ret_false);
            ig.Emit (OpCodes.Ldc_I4_0);
            ig.Emit (OpCodes.Br, done);

            ig.MarkLabel (done);

This code is somehow called with 1 item on the stack, at the first br, there
are
2 items on the stack, the br empties the stack, so at the second br, there is
only 1 item on the stack, and the two brs branch to the same label 'done', but
with different stacks.

-- 
Configure bugmail: http://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list