Hi Andrew,
On Sun, 17 Nov 2024 at 22:49, Andrew Pinski <[email protected]> wrote:
>
> Instead of doing a dg-run with a specific target check for linux.
> Use signal as the effective-target since this requires the use
> of ALARM signal to do the testing.
> Also use check_vect in the main and renames main to main1 to make sure
> we don't use the registers.
>
> Tested on x86_64-linux-gnu.
Can you explain the context of this change? Are you testing on a
target which matches *-*-linux* *-*-gnu* *-*-uclinux* but does not
support 'alarm'?
I was looking at backporting this and a later patch from Torbjorn to
gcc-14, but I noticed that the default dg-do-what in this directory is
'compile' and the previous
dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } changed it to
'run' on linux targets (thus on linux we had 2 PASS, one for
compilation, one for execution).
And the test was skipped on non-linux targets.
After your patch, the test became compile-only on linux, was this intentional?
Maybe we should use instead:
/* { dg-do run } */ (without target selector)
/* { dg-require-effective-target signal } */
not tested, but I think this would restore the previous behaviour on
*linux* targets, but skip the test on targets which do not support
alarm.
Am I missing something?
I can send a patch to do this.
Thanks,
Christophe
>
> PR testsuite/117494
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/vect/pr101145inf.c: Remove dg-do and replace
> with dg-require-effective-target of signal.
> * gcc.dg/vect/pr101145inf_1.c: Likewise.
> * gcc.dg/vect/pr101145inf.inc: Rename main to main1
> and mark as noinline.
> Include tree-vect.h. Have main call check_vect and main1.
>
> Signed-off-by: Andrew Pinski <[email protected]>
> ---
> gcc/testsuite/gcc.dg/vect/pr101145inf.c | 2 +-
> gcc/testsuite/gcc.dg/vect/pr101145inf.inc | 9 ++++++++-
> gcc/testsuite/gcc.dg/vect/pr101145inf_1.c | 2 +-
> 3 files changed, 10 insertions(+), 3 deletions(-)
>
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.c
> b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
> index 3ad8c1a2dd7..aa598875aa5 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf.c
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.c
> @@ -1,4 +1,4 @@
> -/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
> +/* { dg-require-effective-target signal } */
> /* { dg-additional-options "-O3" } */
> #include <limits.h>
> #include "pr101145inf.inc"
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
> b/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
> index 4aa3d049187..eb855b9881a 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf.inc
> @@ -1,6 +1,7 @@
> #include <unistd.h>
> #include <signal.h>
> #include <stdlib.h>
> +#include "tree-vect.h"
>
> void test_finite ();
> void test_infinite ();
> @@ -10,7 +11,8 @@ void do_exit (int i)
> exit (0);
> }
>
> -int main(void)
> +__attribute__((noinline))
> +int main1(void)
> {
> test_finite ();
> struct sigaction s;
> @@ -26,3 +28,8 @@ int main(void)
> return 1;
> }
>
> +int main(void)
> +{
> + check_vect ();
> + return main1();
> +}
> diff --git a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
> b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
> index e3e9dd46d10..0465788c3cc 100644
> --- a/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
> +++ b/gcc/testsuite/gcc.dg/vect/pr101145inf_1.c
> @@ -1,4 +1,4 @@
> -/* { dg-do run { target *-*-linux* *-*-gnu* *-*-uclinux* } } */
> +/* { dg-require-effective-target signal } */
> /* { dg-additional-options "-O3" } */
> #include <limits.h>
> #include "pr101145inf.inc"
> --
> 2.43.0
>