Filed PR jit/66812 for the code generation issue
Dibyendu Majumdar
mobile@majumdar.org.uk
Thu Jan 1 00:00:00 GMT 2015
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.
Regards
Dibyendu
More information about the Jit
mailing list