https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60702

--- Comment #14 from Iain Sandoe <iains at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #13)
> (In reply to Iain Sandoe from comment #11)
> > (In reply to Jakub Jelinek from comment #10)
> > > Created attachment 45976 [details]
> > > gcc9-pr60702.patch
> > > 
> > > Untested fix.
> > 
> > For emulated TLS on x86_64-Darwin16, this progresses 
> > thread_local12c.C 
> > thread_local12d.C
> > thread_local12i.C
> > thread_local12j.C
> > thread_local12l.C
> > 
> > which fail without the patch and pass with it,
> > 
> > thread_local11.C 
> > fails for every instance of _ZTH*
> > (passes for _ZTW* 2 gimple)
> 
> Doesn't thread_local-wrap3.C FAIL then as well?

No, because it already 
// { dg-require-alias "" }
so it's unsupported.


> --- gcc/testsuite/g++.dg/tls/thread_local11.C.jj      2019-03-22
> 15:42:02.506993141 +0100
> +++ gcc/testsuite/g++.dg/tls/thread_local11.C 2019-03-22 15:56:11.077364204
> +0100
> @@ -15,18 +15,18 @@
>  // { dg-final { scan-tree-dump-times "_ZTWN1T2u6E" 2 "gimple" } }
>  // { dg-final { scan-tree-dump-times "_ZTWN1T2u7E" 2 "gimple" } }
>  // { dg-final { scan-tree-dump-times "_ZTWN1T2u8E" 2 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTH2s1" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTH2s2" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTH2s3" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTH2s4" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u1E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u2E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u3E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u4E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u5E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u6E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u7E" 1 "gimple" } }
> -// { dg-final { scan-tree-dump-times "_ZTHN1T2u8E" 1 "gimple" } }
> +// { dg-final { scan-tree-dump-times "_ZTH2s1" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTH2s2" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTH2s3" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTH2s4" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u1E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u2E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u3E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u4E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u5E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u6E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u7E" 1 "gimple" { target
> tls_native } } }
> +// { dg-final { scan-tree-dump-times "_ZTHN1T2u8E" 1 "gimple" { target
> tls_native } } }
>  
>  #include "thread_local11.h"

^^ works for me, results below.

I guess we could do something more clever to detect that the __tls_init calls
are present for !tls_native.  c.f. PR84497 where we don't generate the call
(not had a chance to analyse that yet).

===

Running /src/gcc-trunk/gcc/testsuite/g++.dg/tls/tls.exp ...

                === g++ Summary for unix/-m64 ===

# of expected passes            307
# of expected failures          2
# of unsupported tests          55
Running target unix/-m32

Running /src/gcc-trunk/gcc/testsuite/g++.dg/tls/tls.exp ...

                === g++ Summary for unix/-m32 ===

# of expected passes            307
# of expected failures          2
# of unsupported tests          55

                === g++ Summary ===

# of expected passes            614
# of expected failures          4
# of unsupported tests          110
/scratch/10-12-sie/gcc-trunk-unpatched/gcc/testsuite/g++/../../xg++  version
9.0.1 20190322 (experimental) [trunk revision 269875] (GCC)

Reply via email to