[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