On Wed, Nov 29, 2023 at 07:51:15AM +0100, Jose E. Marchesi wrote: > > FAIL: gcc.c-torture/compile/libcall-2.c -O1 (test for excess errors) > > FAIL: gcc.c-torture/compile/libcall-2.c -O2 -flto > > -fno-use-linker-plugin -flto-partition=none (test for excess errors) > > FAIL: gcc.c-torture/compile/libcall-2.c -O2 -flto -fuse-linker-plugin > > -fno-fat-lto-objects (test for excess errors) > > FAIL: gcc.c-torture/compile/libcall-2.c -O2 (test for excess errors) > > FAIL: gcc.c-torture/compile/libcall-2.c -O3 -g (test for excess errors) > > FAIL: gcc.c-torture/compile/libcall-2.c -Os (test for excess errors) > > Sorry about the regression. > > I installed the patch below to skip the test if the target is not x86_64 > in lp64, as obvious. This should fix the issue. > > >From 4ed0740c6e807460ce79a351094329fdeb551545 Mon Sep 17 00:00:00 2001 > From: "Jose E. Marchesi" <jose.march...@oracle.com> > Date: Wed, 29 Nov 2023 07:44:59 +0100 > Subject: [PATCH] testsuite: fix gcc.c-torture/compile/libcall-2.c in -m32 > > This test relies on having __int128 in x86_64 targets, which is only > available in -m64. > > gcc/testsuite/ChangeLog > > * gcc.c-torture/compile/libcall-2.c: Skip test in -m32. > --- > gcc/testsuite/gcc.c-torture/compile/libcall-2.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c > b/gcc/testsuite/gcc.c-torture/compile/libcall-2.c > index b33944c83ff..9b889172025 100644 > --- a/gcc/testsuite/gcc.c-torture/compile/libcall-2.c > +++ b/gcc/testsuite/gcc.c-torture/compile/libcall-2.c > @@ -2,6 +2,8 @@ > indirect calls. */ > > /* { dg-do compile } */ > +/* __int128 is not supported in x86 -m32. */ > +/* { dg-skip-if "" { ! { x86_64-*-* && { ! ilp32 } } } } */ > /* { dg-options "-O2 -mcmodel=large" { target x86_64-*-* } } */ > /* { dg-final { scan-assembler "globl\t__divti3" } } */
This is not correct. When a test uses __int128, it should be guarded with int128 effective target. But, as the test doesn't really test anything on non-x86 nor ia32, it doesn't belong to gcc.c-torture/compile/ at all, it is x86 specific test which should be moved to gcc.target/i386/libcall-1.c And, should have /* { dg-do compile { target int128 } } */ /* { dg-options "-O2 -mcmodel=large" } */ /* { dg-final { scan-assembler "globl\t__divti3" } } */ I guess no need to bother with the extra guard for -mcmodel=large, because -m32/-mx32 don't have __int128 support, and x86_64-*-* is incorrect anyway (because with that target one can have all of -m32/-m64/-mx32). Jakub