On Thu, Sep 10, 2026 at 6:44 PM H.J. Lu <[email protected]> wrote:
>
> On Thu, Sep 10, 2026 at 5:28 PM Stefan Schulze Frielinghaus
> <[email protected]> wrote:
> >
> > On Thu, Sep 10, 2026 at 05:00:03PM +0800, H.J. Lu wrote:
> > > On Thu, Sep 10, 2026 at 4:25 PM Stefan Schulze Frielinghaus
> > > <[email protected]> wrote:
> > > >
> > > > From: Stefan Schulze Frielinghaus <[email protected]>
> > > >
> > > > Initially asm-hard-reg-2.c was intended to be considered only on 64-bit
> > > > x86.  Commit r16-3110 restricted this to { ! ia32 } which still includes
> > > > the test for i?86 ILP32 for which we get "warning: unsupported size for
> > >
> > > I couldn't reproduce this.  I got
> > >
> > > UNSUPPORTED: gcc.dg/asm-hard-reg-2.c
> > >
> > > for Linux/i686.   How did you test for Linux/i686?
> >
> > My typical workflow is to use crosstool-ng in order to come up with a
> > sysroot for my cross.  I used configuration i686-ubuntu16.04-linux-gnu
> > from crosstool-ng in order to build gcc with
> > --target=i686-ubuntu16.04-linux-gnu --with-build-sysroot=$SYSROOT_DIR
> >
> > $ make check-gcc RUNTESTFLAGS="dg.exp=asm-hard-reg-2.c"
> > ...
> > FAIL: gcc.dg/asm-hard-reg-2.c (test for excess errors)
> >
> > Log file contains:
> > Target is i686-ubuntu16.04-linux-gnu
> > ...
> > FAIL: gcc.dg/asm-hard-reg-2.c (test for excess errors)
> > Excess errors:
> > /devel/gcc/src/gcc/testsuite/gcc.dg/asm-hard-reg-2.c:24:27: error: expected 
> > '(' before 'GPR'
> > /devel/gcc/src/gcc/testsuite/gcc.dg/asm-hard-reg-2.c:31:27: error: expected 
> > '(' before 'GPR'
> >
> > So the test is still run for me.  If #define GPR is moved outside of the
> > if x86_64, then I get
> >
> > FAIL: gcc.dg/asm-hard-reg-2.c (test for excess errors)
> > Excess errors:
> > /devel/gcc/src/gcc/testsuite/gcc.dg/asm-hard-reg-2.c:27:1: warning: 
> > unsupported size for integer register
> > /devel/gcc/src/gcc/testsuite/gcc.dg/asm-hard-reg-2.c:34:1: warning: 
> > unsupported size for integer register
> >
> > Maybe my cross setup is broken then?
>
> { ! ia32 } works with native compiler, but not with cross compiler.
>

The "target" directive doesn't work correctly for cross compilers.
"target lp64" works by accident here since it always returns false for
cross compilers.

-- 
H.J.

Reply via email to