[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Filed PR jit/66812 for the code generation issue



On Wed, 2015-07-08 at 20:01 +0100, Dibyendu Majumdar wrote:
> On 8 July 2015 at 18:46, David Malcolm <dmalcolm@redhat.com> wrote:
> > Dibyendu: what Lua code generated the reproducer?  What is the code
> > meant to be doing?
> >
> 
> Hi Dave - the Lua test is this:
> 
> function x()
>   local IX
>   if ((10 or true) and false) then
>     IX = true
>   end;
>   return ((10 or true) and false)
> end
> assert(x() == false)
> 
> In the original test IX is an upvalue - i.e. a variable in outer
> scope. This is my standalone version of the test. The original test is
> generated as part of the Lua test suite - its purpose is to test
> various permutations of boolean operators.
> 
> The original test compares IX and the function return.
> 
> The issue is that this test should return false - if you see the
> return statement. However when -O2 or -O3 is enabled it returns true.
> 
> The if statement is indeed redundant in this cut down version as IX is
> a local variable. But the return statement is not redundant.

Thanks.  What does this look like as bytecodes?