All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <rth@twiddle.net>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL 0/5] tcg queued patches
Date: Tue, 16 Feb 2016 07:29:45 +1100	[thread overview]
Message-ID: <56C23539.6000805@twiddle.net> (raw)
In-Reply-To: <CAFEAcA9Sde-LZrdvHeDeik5=YExAPf9iKXti5g0if5ggF6djWQ@mail.gmail.com>

On 02/16/2016 12:04 AM, Peter Maydell wrote:
> On 15 February 2016 at 11:29, Richard Henderson <rth@twiddle.net> wrote:
>> ----------------------------------------------------------------
>> Richard Henderson (5):
>>        tcg: Work around clang bug wrt enum ranges, part 2
>>        tcg: Implement indirect memory registers
>>        tcg: Allocate indirect_base temporaries in a different order
>>        target-sparc: Tidy global register initialization
>>        target-sparc: Use global registers for the register window
>>
>>   target-sparc/translate.c | 196 ++++++++++++++++++++++-------------------------
>>   tcg/tcg.c                | 138 +++++++++++++++++++++++----------
>>   tcg/tcg.h                |   2 +
>>   3 files changed, 192 insertions(+), 144 deletions(-)
>
> This failed to build on the i686-w64-mingw32 compiler
> ("i686-w64-mingw32-gcc (GCC) 4.8.2", from the Ubuntu
> gcc-mingw-w64-i686 package version 4.8.2-10ubuntu2+12):
>
> target-sparc/translate.c: In function ‘gen_intermediate_code’:
> target-sparc/translate.c:299:24: error: array subscript is above array
> bounds [-Werror=array-bounds]
>           return cpu_regs[reg];
>                          ^
>
> Fiddling around with the source file to see which call to
> gen_dest_gpr() is provoking this shows that it's the one
> in gen_ldda_asi() at line 2157 -- if I change the second
> argument from 'rd + 1' to 'rd' it compiles OK.
>
> Changing the call site of gen_ldda_asi at line 4727 so its last
> argument is 'rd & ~1' rather than 'rd' also suppresses the
> error. (That can't possibly change the semantics because we've
> just done "if (rd & 1) goto illegal_insn;"...)
>
> I'm generally reluctant to suggest compiler bugs, but this does
> look rather like a compiler bug...

There are at least 5 such bugs open against gcc at the moment.

     https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56456

I couldn't reproduce this quickly with a freshly built gcc 4.8 branch on 
i686-linux.  Could you please file a gcc bug with your preprocessed source? 
There's a chance it isn't a duplicate, but...

In the meantime... hmm.  I don't suppose removing the inline helps?  Probably 
not, since there's only one caller...  Otherwise I guess we should go with your 
"rd & ~1" workaround.


r~

  reply	other threads:[~2016-02-15 20:29 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-15 11:29 [Qemu-devel] [PULL 0/5] tcg queued patches Richard Henderson
2016-02-15 11:29 ` [Qemu-devel] [PULL 1/5] tcg: Work around clang bug wrt enum ranges, part 2 Richard Henderson
2016-02-15 11:29 ` [Qemu-devel] [PULL 2/5] tcg: Implement indirect memory registers Richard Henderson
2016-02-15 11:29 ` [Qemu-devel] [PULL 3/5] tcg: Allocate indirect_base temporaries in a different order Richard Henderson
2016-02-15 11:29 ` [Qemu-devel] [PULL 4/5] target-sparc: Tidy global register initialization Richard Henderson
2016-02-15 11:29 ` [Qemu-devel] [PULL 5/5] target-sparc: Use global registers for the register window Richard Henderson
2016-02-15 13:04 ` [Qemu-devel] [PULL 0/5] tcg queued patches Peter Maydell
2016-02-15 20:29   ` Richard Henderson [this message]
2016-02-15 20:35     ` Peter Maydell
2016-02-15 20:57       ` Richard Henderson
2016-02-16 11:45         ` Peter Maydell
2016-02-23  7:55           ` Richard Henderson
2016-02-23  9:05             ` Peter Maydell
2016-02-16 11:46       ` Peter Maydell
2016-02-23 16:14   ` Richard Henderson
2016-02-23 16:23     ` Peter Maydell
2018-05-02 17:47 [Qemu-devel] [PULL 0/5] TCG " Richard Henderson
2018-05-03 13:00 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56C23539.6000805@twiddle.net \
    --to=rth@twiddle.net \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.