diff options
| author | Kostya Serebryany <kcc@google.com> | 2013-11-21 07:31:12 +0000 |
|---|---|---|
| committer | Kostya Serebryany <kcc@google.com> | 2013-11-21 07:31:12 +0000 |
| commit | 95f3e54066f3e9b92b0e98de32b9a4b05714af01 (patch) | |
| tree | ee573a05349be3dd050655587cf1dc2b24a3b60a /compiler-rt/lib/tsan | |
| parent | 0b458286e18d2661844d891c990e6c4a41668bd1 (diff) | |
| download | bcm5719-llvm-95f3e54066f3e9b92b0e98de32b9a4b05714af01.tar.gz bcm5719-llvm-95f3e54066f3e9b92b0e98de32b9a4b05714af01.zip | |
[tsan] add a run-time-side regression test for https://code.google.com/p/thread-sanitizer/issues/detail?id=40 (tsan-hostile load speculation)
llvm-svn: 195325
Diffstat (limited to 'compiler-rt/lib/tsan')
| -rw-r--r-- | compiler-rt/lib/tsan/lit_tests/race_on_speculative_load.cc | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/lit_tests/race_on_speculative_load.cc b/compiler-rt/lib/tsan/lit_tests/race_on_speculative_load.cc new file mode 100644 index 00000000000..0c7dbb568ab --- /dev/null +++ b/compiler-rt/lib/tsan/lit_tests/race_on_speculative_load.cc @@ -0,0 +1,24 @@ +// RUN: %clangxx_tsan -O1 %s -o %t && %t +// Regtest for https://code.google.com/p/thread-sanitizer/issues/detail?id=40 +// This is a correct program and tsan should not report a race. +#include <pthread.h> +#include <unistd.h> +int g; +__attribute__((noinline)) +int foo(int cond) { + if (cond) + return g; + return 0; +} +void *Thread1(void *p) { + long res = foo((long)p); + sleep(1); + return (void*) res; +} + +int main() { + pthread_t t; + pthread_create(&t, 0, Thread1, 0); + g = 1; + pthread_join(t, 0); +} |

