From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 108056 invoked by alias); 8 Jul 2015 19:11:33 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 107986 invoked by uid 89); 8 Jul 2015 19:11:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.98.7 on sourceware.org X-Virus-Found: No X-HELO: mx1.redhat.com Message-ID: <1436382217.24803.101.camel@surprise> Subject: Re: Filed PR jit/66812 for the code generation issue From: David Malcolm To: Dibyendu Majumdar Cc: jit@gcc.gnu.org Date: Thu, 01 Jan 2015 00:00:00 -0000 In-Reply-To: References: <1436365266.24803.65.camel@surprise> <1436367926.24803.71.camel@surprise> <1436369443.24803.75.camel@surprise> <1436377619.24803.97.camel@surprise> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-SW-Source: 2015-q3/txt/msg00037.txt.bz2 On Wed, 2015-07-08 at 20:01 +0100, Dibyendu Majumdar wrote: > On 8 July 2015 at 18:46, David Malcolm 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?