This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFA PATCH, i386]: Warn for 64-bit values in general-reg asm operands and error out for 8-bit values in invalid GR asm operand
On Thu, Mar 2, 2017 at 11:31 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> Hi!
>
> On Wed, Mar 01, 2017 at 08:26:36PM +0100, Uros Bizjak wrote:
>> 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
>>
>> * config/i386/i386.c (print_reg): Warn for values of
>> unsupported size in integer register.
>>
>> testsuite/ChangeLog:
>>
>> 2017-03-01 Uros Bizjak <ubizjak@gmail.com>
>>
>> * gcc.target/i386/invsize-2.c: New test.
>> * gcc.target/i386/invsize-3.c: Ditto.
>> * gcc.target/i386/invsize-4.c: Ditto.
>> * gcc.target/i386/pr66274.c: Expect "unsuported size" warning.
>> * gcc.target/i386/stackalign/asm-1.c: Ditto.
>>
>> Bootstrapped and regression tested on x86_64-linux-gnu {,-m32}.
>
> This broke
> FAIL: gcc.dg/pr57134.c (test for excess errors)
> on i686-linux, the warning triggers there.
>
> It seems "# %0 %1" actually isn't needed for reproduction of the original
> bug (tried powerpc64-linux cross at r200000 where it ICEs even with ""
> and succeeds at r204000), so is this ok for trunk?
>
> Other option is to add { dg-final { dg-warning "..." { target ia32 } } }
> but that really doesn't scale to other targets, or -w.
>
> 2017-03-02 Jakub Jelinek <jakub@redhat.com>
>
> * gcc.dg/pr57134.c: Use empty inline asm string literal.
Looks obvious to me, and just the case we want to catch on x86_32.
Uros.
> --- gcc/testsuite/gcc.dg/pr57134.c.jj 2013-06-19 19:28:33.000000000 +0200
> +++ gcc/testsuite/gcc.dg/pr57134.c 2017-03-02 23:24:40.329317713 +0100
> @@ -18,7 +18,7 @@ static __inline__ __attribute__((always_
> atomic64_read(const atomic64_t *v)
> {
> int64_t t;
> - __asm__ __volatile__("# %0, %1" : "=r"(t) : "m"(v->counter));
> + __asm__ __volatile__("" : "=r"(t) : "m"(v->counter));
> return t;
> }
>
>
>
> Jakub