[Patch, testsuite] test g++.dg/tls for emutls targets.
Jack Howarth
howarth@bromo.med.uc.edu
Tue Apr 6 03:17:00 GMT 2010
On Mon, Apr 05, 2010 at 09:49:01AM +0100, IainS wrote:
> whilst resolving PR43602 I noticed that some of the tls tests have
> require "tls_native" whereas AFAICT they are equally applicable to
> emutls.
>
> The attached patch/changelog enables those tests on emutls targets
> regtested on i686-apple-darwin-9, powerpc-apple-darwin9, i686-pc-linux.
>
> gcc/testsuite/Changelog:
> * g++.dg/tls/init-1.C: Allow test for all tls targets.
> * g++.dg/tls/init-2.C: Ditto.
> * g++.dg/tls/diag-1.C: Ditto.
> * g++.dg/tls/diag-2.C: Ditto.
> * g++.dg/tls/diag-3.C: Ditto.
> * g++.dg/tls/diag-4.C: Ditto.
> * g++.dg/tls/static-1.C: Ditto.
> * g++.dg/tls/diag-5.C: Ditto.
> * g++.dg/tls/static-1a.cc: Ditto.
> * g++.dg/tls/trivial.C: Ditto.
>
> Iain
>
> Index: gcc/testsuite/g++.dg/tls/init-1.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/init-1.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/init-1.C (working copy)
> @@ -1,5 +1,5 @@
> /* Valid initializations. */
> -/* { dg-require-effective-target tls_native } */
> +/* { dg-require-effective-target tls } */
>
> __thread int i = 42;
>
> Index: gcc/testsuite/g++.dg/tls/diag-1.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/diag-1.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/diag-1.C (working copy)
> @@ -1,5 +1,5 @@
> // Valid __thread specifiers.
> -// { dg-require-effective-target tls_native }
> +// { dg-require-effective-target tls }
>
> __thread int g1;
> extern __thread int g2;
> Index: gcc/testsuite/g++.dg/tls/init-2.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/init-2.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/init-2.C (working copy)
> @@ -1,5 +1,5 @@
> /* Invalid initializations. */
> -/* { dg-require-effective-target tls_native } */
> +/* { dg-require-effective-target tls } */
>
> extern __thread int i;
> __thread int *p = &i; /* { dg-error "dynamically initialized" } */
> Index: gcc/testsuite/g++.dg/tls/diag-2.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/diag-2.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/diag-2.C (working copy)
> @@ -1,5 +1,5 @@
> /* Invalid __thread specifiers. */
> -/* { dg-require-effective-target tls_native } */
> +/* { dg-require-effective-target tls } */
>
> __thread extern int g1; /* { dg-error "'__thread' before 'extern'" } */
> __thread static int g2; /* { dg-error "'__thread' before 'static'" } */
> Index: gcc/testsuite/g++.dg/tls/diag-3.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/diag-3.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/diag-3.C (working copy)
> @@ -1,5 +1,5 @@
> // Report invalid extern and __thread combinations.
> -// { dg-require-effective-target tls_native }
> +// { dg-require-effective-target tls }
>
> extern int j; // { dg-error "previously declared here" }
> __thread int j; // { dg-error "follows non-thread-local" }
> Index: gcc/testsuite/g++.dg/tls/diag-4.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/diag-4.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/diag-4.C (working copy)
> @@ -1,5 +1,5 @@
> /* Invalid __thread specifiers. */
> -/* { dg-require-effective-target tls_native } */
> +/* { dg-require-effective-target tls } */
>
> __thread typedef int g4; /* { dg-error "multiple storage classes" } */
>
> Index: gcc/testsuite/g++.dg/tls/static-1.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/static-1.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/static-1.C (working copy)
> @@ -1,6 +1,6 @@
> // { dg-do run }
> // { dg-options "-O2" }
> -// { dg-require-effective-target tls_runtime }
> +// { dg-require-effective-target tls }
> // { dg-additional-sources "static-1a.cc" }
>
> extern "C" void abort ();
> Index: gcc/testsuite/g++.dg/tls/diag-5.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/diag-5.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/diag-5.C (working copy)
> @@ -1,5 +1,5 @@
> // PR c++/30536
> // Invalid __thread specifiers.
> -// { dg-require-effective-target tls_native }
> +// { dg-require-effective-target tls }
>
> struct A { __thread register int i; }; // { dg-error "multiple storage classes|storage class specified" }
> Index: gcc/testsuite/g++.dg/tls/static-1a.cc
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/static-1a.cc (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/static-1a.cc (working copy)
> @@ -1,6 +1,6 @@
> // { dg-do run }
> // { dg-options "-O2" }
> -// { dg-require-effective-target tls_runtime }
> +// { dg-require-effective-target tls }
> // { dg-additional-sources "static-1a.cc" }
>
> struct A
> Index: gcc/testsuite/g++.dg/tls/trivial.C
> ===================================================================
> --- gcc/testsuite/g++.dg/tls/trivial.C (revision 157959)
> +++ gcc/testsuite/g++.dg/tls/trivial.C (working copy)
> @@ -1,3 +1,3 @@
> -// { dg-require-effective-target tls_native }
> +// { dg-require-effective-target tls }
>
> __thread int i;
>
>
> gcc/testsuite/Changelog:
>
> 2010-04-05 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk>
>
> * g++.dg/tls/init-1.C: Allow test for all tls targets.
> * g++.dg/tls/init-2.C: Ditto.
> * g++.dg/tls/diag-1.C: Ditto.
> * g++.dg/tls/diag-2.C: Ditto.
> * g++.dg/tls/diag-3.C: Ditto.
> * g++.dg/tls/diag-4.C: Ditto.
> * g++.dg/tls/static-1.C: Ditto.
> * g++.dg/tls/diag-5.C: Ditto.
> * g++.dg/tls/static-1a.cc: Ditto.
> * g++.dg/tls/trivial.C: Ditto.
>
>
Iain,
There are still a large number of tests in gcc/testsuite that need
this fix...
testsuite/g++.dg/gomp/clause-3.C:// { dg-require-effective-target tls_native }
testsuite/g++.dg/gomp/copyin-1.C:// { dg-require-effective-target tls_native }
testsuite/g++.dg/gomp/pr35244.C:// { dg-require-effective-target tls_native }
testsuite/g++.dg/gomp/sharing-1.C:/* { dg-require-effective-target tls_native } */
testsuite/g++.dg/gomp/tls-1.C:// { dg-require-effective-target tls_native }
testsuite/g++.dg/gomp/tls-2.C:/* { dg-require-effective-target tls_native } */
testsuite/g++.dg/gomp/tls-3.C:// { dg-require-effective-target tls_native }
testsuite/g++.dg/gomp/tls-4.C:// { dg-require-effective-target tls_native }
testsuite/gcc.dg/gomp/appendix-a/a.22.1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/appendix-a/a.22.2.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/appendix-a/a.24.1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/appendix-a/a.32.1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/appendix-a/a.33.1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/clause-1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/copyin-1.c:// { dg-require-effective-target tls_native }
testsuite/gcc.dg/gomp/pr35244.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/sharing-1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/gomp/tls-1.c:// { dg-require-effective-target tls_native }
testsuite/gcc.dg/gomp/tls-2.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/alpha-1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-1.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-13.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-14.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-15.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-2.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-3.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-4.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/opt-7.c:/* { dg-require-effective-target tls_native } */
testsuite/gcc.dg/tls/section-1.c:/* { dg-require-effective-target tls_native } */
testsuite/gfortran.dg/gomp/appendix-a/a.22.1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.22.4.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.22.5.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.22.6.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.24.1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.32.1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/appendix-a/a.33.1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/crayptr2.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/fixed-1.f:C { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/free-1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/omp_threadprivate1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/omp_threadprivate2.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/reduction1.f90:! { dg-require-effective-target tls_native }
testsuite/gfortran.dg/gomp/sharing-1.f90:! { dg-require-effective-target tls_native }
Can you fix these as well?
Jack
More information about the Gcc-patches
mailing list