aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-01-31 22:25:23 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-01-31 22:25:23 +0100
commiteecd8b7c00ff2770b9899cb9c9de1addebdb6415 (patch)
treebaaa3e4765c447fbef287e7dbe4eb8a030e91d2d /gcc
parentefa7882fa699212d9d5417df3e39882e831eacbb (diff)
downloadgcc-eecd8b7c00ff2770b9899cb9c9de1addebdb6415.zip
gcc-eecd8b7c00ff2770b9899cb9c9de1addebdb6415.tar.gz
gcc-eecd8b7c00ff2770b9899cb9c9de1addebdb6415.tar.bz2
re PR sanitizer/59410 (tsan tests fail with address randomization disabled)
PR sanitizer/59410 * lib/tsan-dg.exp (tsan_init): Instead of not running any tsan tests if trivial testcase doesn't run, set dg-do-what-default to compile. (tsan_finish): Restore dg-do-what-default. * g++.dg/tsan/atomic_free.C: Remove dg-do line. * g++.dg/tsan/fd_close_norace2.C: Likewise. * g++.dg/tsan/default_options.C: Likewise. * g++.dg/tsan/aligned_vs_unaligned_race.C: Likewise. * g++.dg/tsan/atomic_free2.C: Likewise. * g++.dg/tsan/cond_race.C: Likewise. * g++.dg/tsan/fd_close_norace.C: Likewise. * g++.dg/tsan/benign_race.C: Likewise. * c-c++-common/tsan/fd_pipe_race.c: Likewise. * c-c++-common/tsan/simple_race.c: Likewise. * c-c++-common/tsan/mutexset1.c: Likewise. * c-c++-common/tsan/thread_leak2.c: Likewise. * c-c++-common/tsan/tls_race.c: Likewise. * c-c++-common/tsan/write_in_reader_lock.c: Likewise. * c-c++-common/tsan/race_on_barrier2.c: Likewise. * c-c++-common/tsan/free_race2.c: Likewise. * c-c++-common/tsan/thread_leak.c: Likewise. * c-c++-common/tsan/thread_leak1.c: Likewise. * c-c++-common/tsan/race_on_barrier.c: Likewise. * c-c++-common/tsan/free_race.c: Likewise. * c-c++-common/tsan/sleep_sync.c: Likewise. * c-c++-common/tsan/tiny_race.c: Likewise. * c-c++-common/tsan/race_on_mutex2.c: Likewise. * c-c++-common/tsan/atomic_stack.c: Likewise. * c-c++-common/tsan/race_on_mutex.c: Likewise. Adjust line numbers in dg-output regexps. * c-c++-common/tsan/simple_stack.c: Likewise. From-SVN: r207371
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog35
-rw-r--r--gcc/testsuite/c-c++-common/tsan/atomic_stack.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/free_race.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/free_race2.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/mutexset1.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/race_on_barrier.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/race_on_barrier2.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/race_on_mutex.c5
-rw-r--r--gcc/testsuite/c-c++-common/tsan/race_on_mutex2.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/simple_race.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/simple_stack.c17
-rw-r--r--gcc/testsuite/c-c++-common/tsan/sleep_sync.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/thread_leak.c2
-rw-r--r--gcc/testsuite/c-c++-common/tsan/thread_leak1.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/thread_leak2.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/tiny_race.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/tls_race.c1
-rw-r--r--gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c1
-rw-r--r--gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C2
-rw-r--r--gcc/testsuite/g++.dg/tsan/atomic_free.C1
-rw-r--r--gcc/testsuite/g++.dg/tsan/atomic_free2.C1
-rw-r--r--gcc/testsuite/g++.dg/tsan/benign_race.C2
-rw-r--r--gcc/testsuite/g++.dg/tsan/cond_race.C1
-rw-r--r--gcc/testsuite/g++.dg/tsan/default_options.C1
-rw-r--r--gcc/testsuite/g++.dg/tsan/fd_close_norace.C2
-rw-r--r--gcc/testsuite/g++.dg/tsan/fd_close_norace2.C2
-rw-r--r--gcc/testsuite/lib/tsan-dg.exp17
28 files changed, 61 insertions, 42 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 014dc08..0f59583 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,38 @@
+2014-01-31 Jakub Jelinek <jakub@redhat.com>
+
+ PR sanitizer/59410
+ * lib/tsan-dg.exp (tsan_init): Instead of not running any
+ tsan tests if trivial testcase doesn't run, set dg-do-what-default
+ to compile.
+ (tsan_finish): Restore dg-do-what-default.
+ * g++.dg/tsan/atomic_free.C: Remove dg-do line.
+ * g++.dg/tsan/fd_close_norace2.C: Likewise.
+ * g++.dg/tsan/default_options.C: Likewise.
+ * g++.dg/tsan/aligned_vs_unaligned_race.C: Likewise.
+ * g++.dg/tsan/atomic_free2.C: Likewise.
+ * g++.dg/tsan/cond_race.C: Likewise.
+ * g++.dg/tsan/fd_close_norace.C: Likewise.
+ * g++.dg/tsan/benign_race.C: Likewise.
+ * c-c++-common/tsan/fd_pipe_race.c: Likewise.
+ * c-c++-common/tsan/simple_race.c: Likewise.
+ * c-c++-common/tsan/mutexset1.c: Likewise.
+ * c-c++-common/tsan/thread_leak2.c: Likewise.
+ * c-c++-common/tsan/tls_race.c: Likewise.
+ * c-c++-common/tsan/write_in_reader_lock.c: Likewise.
+ * c-c++-common/tsan/race_on_barrier2.c: Likewise.
+ * c-c++-common/tsan/free_race2.c: Likewise.
+ * c-c++-common/tsan/thread_leak.c: Likewise.
+ * c-c++-common/tsan/thread_leak1.c: Likewise.
+ * c-c++-common/tsan/race_on_barrier.c: Likewise.
+ * c-c++-common/tsan/free_race.c: Likewise.
+ * c-c++-common/tsan/sleep_sync.c: Likewise.
+ * c-c++-common/tsan/tiny_race.c: Likewise.
+ * c-c++-common/tsan/race_on_mutex2.c: Likewise.
+ * c-c++-common/tsan/atomic_stack.c: Likewise.
+ * c-c++-common/tsan/race_on_mutex.c: Likewise. Adjust line numbers
+ in dg-output regexps.
+ * c-c++-common/tsan/simple_stack.c: Likewise.
+
2014-01-31 Richard Henderson <rth@redhat.com>
* g++.dg/tm/pr60004.C: New.
diff --git a/gcc/testsuite/c-c++-common/tsan/atomic_stack.c b/gcc/testsuite/c-c++-common/tsan/atomic_stack.c
index eac71b8..6a379512 100644
--- a/gcc/testsuite/c-c++-common/tsan/atomic_stack.c
+++ b/gcc/testsuite/c-c++-common/tsan/atomic_stack.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c b/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c
index fc76cbf..28cd630 100644
--- a/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c
+++ b/gcc/testsuite/c-c++-common/tsan/fd_pipe_race.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/free_race.c b/gcc/testsuite/c-c++-common/tsan/free_race.c
index 362c92b..258f7b7 100644
--- a/gcc/testsuite/c-c++-common/tsan/free_race.c
+++ b/gcc/testsuite/c-c++-common/tsan/free_race.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <stdlib.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/free_race2.c b/gcc/testsuite/c-c++-common/tsan/free_race2.c
index 3c15d2d..3971180 100644
--- a/gcc/testsuite/c-c++-common/tsan/free_race2.c
+++ b/gcc/testsuite/c-c++-common/tsan/free_race2.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <stdlib.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/mutexset1.c b/gcc/testsuite/c-c++-common/tsan/mutexset1.c
index 783f262..7c32a85 100644
--- a/gcc/testsuite/c-c++-common/tsan/mutexset1.c
+++ b/gcc/testsuite/c-c++-common/tsan/mutexset1.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/race_on_barrier.c b/gcc/testsuite/c-c++-common/tsan/race_on_barrier.c
index 407c712..0a0e5fa 100644
--- a/gcc/testsuite/c-c++-common/tsan/race_on_barrier.c
+++ b/gcc/testsuite/c-c++-common/tsan/race_on_barrier.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/race_on_barrier2.c b/gcc/testsuite/c-c++-common/tsan/race_on_barrier2.c
index 9576c67..b01a5cc 100644
--- a/gcc/testsuite/c-c++-common/tsan/race_on_barrier2.c
+++ b/gcc/testsuite/c-c++-common/tsan/race_on_barrier2.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/race_on_mutex.c b/gcc/testsuite/c-c++-common/tsan/race_on_mutex.c
index f112d09..5dad345 100644
--- a/gcc/testsuite/c-c++-common/tsan/race_on_mutex.c
+++ b/gcc/testsuite/c-c++-common/tsan/race_on_mutex.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
@@ -38,7 +37,7 @@ int main() {
/* { dg-output "WARNING: ThreadSanitizer: data race.*(\n|\r\n|\r)" } */
/* { dg-output " Atomic read of size 1 at .* by thread T2:(\n|\r\n|\r)" } */
/* { dg-output " #0 pthread_mutex_lock.*" } */
-/* { dg-output " #1 Thread2.* .*(race_on_mutex.c:22|\\?{2}:0) (.*)" } */
+/* { dg-output " #1 Thread2.* .*(race_on_mutex.c:21|\\?{2}:0) (.*)" } */
/* { dg-output " Previous write of size 1 at .* by thread T1:(\n|\r\n|\r)" } */
/* { dg-output " #0 pthread_mutex_init .* (.)*" } */
-/* { dg-output " #1 Thread1.* .*(race_on_mutex.c:13|\\?{2}:0) .*" } */
+/* { dg-output " #1 Thread1.* .*(race_on_mutex.c:12|\\?{2}:0) .*" } */
diff --git a/gcc/testsuite/c-c++-common/tsan/race_on_mutex2.c b/gcc/testsuite/c-c++-common/tsan/race_on_mutex2.c
index d8a6980..80a6fb6 100644
--- a/gcc/testsuite/c-c++-common/tsan/race_on_mutex2.c
+++ b/gcc/testsuite/c-c++-common/tsan/race_on_mutex2.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/simple_race.c b/gcc/testsuite/c-c++-common/tsan/simple_race.c
index 4626efd..a40accd 100644
--- a/gcc/testsuite/c-c++-common/tsan/simple_race.c
+++ b/gcc/testsuite/c-c++-common/tsan/simple_race.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-set-target-env-var TSAN_OPTIONS "halt_on_error=1" } */
/* { dg-shouldfail "tsan" } */
diff --git a/gcc/testsuite/c-c++-common/tsan/simple_stack.c b/gcc/testsuite/c-c++-common/tsan/simple_stack.c
index e92d010..b66a670 100644
--- a/gcc/testsuite/c-c++-common/tsan/simple_stack.c
+++ b/gcc/testsuite/c-c++-common/tsan/simple_stack.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
@@ -51,16 +50,16 @@ int main() {
/* { dg-output "WARNING: ThreadSanitizer: data race.*" } */
/* { dg-output " Write of size 4 at .* by thread T1:(\n|\r\n|\r)" } */
-/* { dg-output " #0 foo1.* .*(simple_stack.c:11|\\?{2}:0) (.*)" } */
-/* { dg-output " #1 bar1.* .*(simple_stack.c:16|\\?{2}:0) (.*)" } */
-/* { dg-output " #2 Thread1.* .*(simple_stack.c:30|\\?{2}:0) (.*)" } */
+/* { dg-output " #0 foo1.* .*(simple_stack.c:10|\\?{2}:0) (.*)" } */
+/* { dg-output " #1 bar1.* .*(simple_stack.c:15|\\?{2}:0) (.*)" } */
+/* { dg-output " #2 Thread1.* .*(simple_stack.c:29|\\?{2}:0) (.*)" } */
/* { dg-output " Previous read of size 4 at .* by thread T2:(\n|\r\n|\r)" } */
-/* { dg-output " #0 foo2.* .*(simple_stack.c:20|\\?{2}:0) (.*)" } */
-/* { dg-output " #1 bar2.* .*(simple_stack.c:25|\\?{2}:0) (.*)" } */
-/* { dg-output " #2 Thread2.* .*(simple_stack.c:35|\\?{2}:0) (.*)" } */
+/* { dg-output " #0 foo2.* .*(simple_stack.c:19|\\?{2}:0) (.*)" } */
+/* { dg-output " #1 bar2.* .*(simple_stack.c:24|\\?{2}:0) (.*)" } */
+/* { dg-output " #2 Thread2.* .*(simple_stack.c:34|\\?{2}:0) (.*)" } */
/* { dg-output " Thread T1 \\(tid=.*, running\\) created by main thread at:(\n|\r\n|\r)" } */
/* { dg-output " #0 pthread_create .* (.*)" } */
-/* { dg-output " #1 StartThread.* .*(simple_stack.c:40|\\?{2}:0) (.*)" } */
+/* { dg-output " #1 StartThread.* .*(simple_stack.c:39|\\?{2}:0) (.*)" } */
/* { dg-output " Thread T2 (.*) created by main thread at:(\n|\r\n|\r)" } */
/* { dg-output " #0 pthread_create .* (.*)" } */
-/* { dg-output " #1 StartThread.* .*(simple_stack.c:40|\\?{2}:0) (.*)" } */
+/* { dg-output " #1 StartThread.* .*(simple_stack.c:39|\\?{2}:0) (.*)" } */
diff --git a/gcc/testsuite/c-c++-common/tsan/sleep_sync.c b/gcc/testsuite/c-c++-common/tsan/sleep_sync.c
index 8203d54..44d4455 100644
--- a/gcc/testsuite/c-c++-common/tsan/sleep_sync.c
+++ b/gcc/testsuite/c-c++-common/tsan/sleep_sync.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/thread_leak.c b/gcc/testsuite/c-c++-common/tsan/thread_leak.c
index 416ef77..02deaba 100644
--- a/gcc/testsuite/c-c++-common/tsan/thread_leak.c
+++ b/gcc/testsuite/c-c++-common/tsan/thread_leak.c
@@ -1,5 +1,3 @@
-/* { dg-do run } */
-
#include <pthread.h>
#include <stdio.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/thread_leak1.c b/gcc/testsuite/c-c++-common/tsan/thread_leak1.c
index 18bcf2a..ce28ee4 100644
--- a/gcc/testsuite/c-c++-common/tsan/thread_leak1.c
+++ b/gcc/testsuite/c-c++-common/tsan/thread_leak1.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/thread_leak2.c b/gcc/testsuite/c-c++-common/tsan/thread_leak2.c
index d6f4e22..c9b8046 100644
--- a/gcc/testsuite/c-c++-common/tsan/thread_leak2.c
+++ b/gcc/testsuite/c-c++-common/tsan/thread_leak2.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/tiny_race.c b/gcc/testsuite/c-c++-common/tsan/tiny_race.c
index 0356183..962497b 100644
--- a/gcc/testsuite/c-c++-common/tsan/tiny_race.c
+++ b/gcc/testsuite/c-c++-common/tsan/tiny_race.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/tls_race.c b/gcc/testsuite/c-c++-common/tsan/tls_race.c
index 041e9af..423867e 100644
--- a/gcc/testsuite/c-c++-common/tsan/tls_race.c
+++ b/gcc/testsuite/c-c++-common/tsan/tls_race.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c b/gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c
index c6a0bee..898d23d 100644
--- a/gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c
+++ b/gcc/testsuite/c-c++-common/tsan/write_in_reader_lock.c
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C b/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
index ccac527..390be86 100644
--- a/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
+++ b/gcc/testsuite/g++.dg/tsan/aligned_vs_unaligned_race.C
@@ -1,5 +1,3 @@
-/* { dg-do run { target { x86_64-*-linux* } } } */
-
#include <pthread.h>
#include <stdio.h>
#include <stdint.h>
diff --git a/gcc/testsuite/g++.dg/tsan/atomic_free.C b/gcc/testsuite/g++.dg/tsan/atomic_free.C
index afaad77..26d01ae 100644
--- a/gcc/testsuite/g++.dg/tsan/atomic_free.C
+++ b/gcc/testsuite/g++.dg/tsan/atomic_free.C
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tsan/atomic_free2.C b/gcc/testsuite/g++.dg/tsan/atomic_free2.C
index 7ccaa1a..1fe512c 100644
--- a/gcc/testsuite/g++.dg/tsan/atomic_free2.C
+++ b/gcc/testsuite/g++.dg/tsan/atomic_free2.C
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tsan/benign_race.C b/gcc/testsuite/g++.dg/tsan/benign_race.C
index d67b31b..b5f1720 100644
--- a/gcc/testsuite/g++.dg/tsan/benign_race.C
+++ b/gcc/testsuite/g++.dg/tsan/benign_race.C
@@ -1,5 +1,3 @@
-/* { dg-do run } */
-
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tsan/cond_race.C b/gcc/testsuite/g++.dg/tsan/cond_race.C
index d28912f..a937614 100644
--- a/gcc/testsuite/g++.dg/tsan/cond_race.C
+++ b/gcc/testsuite/g++.dg/tsan/cond_race.C
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
/* { dg-output "ThreadSanitizer: data race.*" } */
/* { dg-output "pthread_cond_signal.*" } */
diff --git a/gcc/testsuite/g++.dg/tsan/default_options.C b/gcc/testsuite/g++.dg/tsan/default_options.C
index b688abf..f0c0ece 100644
--- a/gcc/testsuite/g++.dg/tsan/default_options.C
+++ b/gcc/testsuite/g++.dg/tsan/default_options.C
@@ -1,4 +1,3 @@
-/* { dg-do run } */
/* { dg-shouldfail "tsan" } */
#include <pthread.h>
diff --git a/gcc/testsuite/g++.dg/tsan/fd_close_norace.C b/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
index a31428a..9babb6a 100644
--- a/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
+++ b/gcc/testsuite/g++.dg/tsan/fd_close_norace.C
@@ -1,5 +1,3 @@
-/* { dg-do run } */
-
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
diff --git a/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C b/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
index f2d394c..56f00f8 100644
--- a/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
+++ b/gcc/testsuite/g++.dg/tsan/fd_close_norace2.C
@@ -1,5 +1,3 @@
-/* { dg-do run } */
-
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
diff --git a/gcc/testsuite/lib/tsan-dg.exp b/gcc/testsuite/lib/tsan-dg.exp
index 2274f06..89696a9 100644
--- a/gcc/testsuite/lib/tsan-dg.exp
+++ b/gcc/testsuite/lib/tsan-dg.exp
@@ -69,6 +69,8 @@ proc tsan_init { args } {
global ALWAYS_CXXFLAGS
global TOOL_OPTIONS
global tsan_saved_TEST_ALWAYS_FLAGS
+ global dg-do-what-default
+ global tsan_saved_dg-do-what-default
set link_flags ""
if ![is_remote host] {
@@ -79,6 +81,9 @@ proc tsan_init { args } {
}
}
+ if [info exists dg-do-what-default] {
+ set tsan_saved_dg-do-what-default ${dg-do-what-default}
+ }
if [info exists TEST_ALWAYS_FLAGS] {
set tsan_saved_TEST_ALWAYS_FLAGS $TEST_ALWAYS_FLAGS
}
@@ -96,8 +101,11 @@ proc tsan_init { args } {
if [check_runtime_nocache tsan_works {
int main () { return 0; }
} "-fPIE -pie -fsanitize=thread -g"] {
- return 1
+ set dg-do-what-default run
+ } else {
+ set dg-do-what-default compile
}
+ return 1
}
return 0
}
@@ -109,10 +117,17 @@ proc tsan_init { args } {
proc tsan_finish { args } {
global TEST_ALWAYS_FLAGS
global tsan_saved_TEST_ALWAYS_FLAGS
+ global dg-do-what-default
+ global tsan_saved_dg-do-what-default
if [info exists tsan_saved_TEST_ALWAYS_FLAGS] {
set TEST_ALWAYS_FLAGS $tsan_saved_TEST_ALWAYS_FLAGS
} else {
unset TEST_ALWAYS_FLAGS
}
+ if [info exists tsan_saved_dg-do-what-default] {
+ set dg-do-what-default ${tsan_saved_dg-do-what-default}
+ } else {
+ unset dg-do-what-default
+ }
}