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

--- Comment #13 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
(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?
If yes, then perhaps:
--- 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"

If that test doesn't fail, then perhaps instead:
--- 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 16:00:08.863486555
+0100
@@ -1,6 +1,7 @@
 // PR c++/60702
 // { dg-do compile { target c++11 } }
 // { dg-add-options tls }
+// { dg-require-alias "" }
 // { dg-require-effective-target tls_runtime }
 // { dg-additional-options "-fdump-tree-gimple" }
 // { dg-final { scan-tree-dump-times "_ZTW2s1" 2 "gimple" } }

(sadly there is no effective target alias).

Reply via email to