diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-01-31 22:25:23 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-01-31 22:25:23 +0100 |
commit | eecd8b7c00ff2770b9899cb9c9de1addebdb6415 (patch) | |
tree | baaa3e4765c447fbef287e7dbe4eb8a030e91d2d /gcc | |
parent | efa7882fa699212d9d5417df3e39882e831eacbb (diff) | |
download | gcc-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')
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 + } } |