[compiler-rt] r195325 - [tsan] add a run-time-side regression test for https://code.google.com/p/thread-sanitizer/issues/detail?id=40 (tsan-hostile load speculation)

Kostya Serebryany kcc at google.com
Wed Nov 20 23:31:12 PST 2013


Author: kcc
Date: Thu Nov 21 01:31:12 2013
New Revision: 195325

URL: http://llvm.org/viewvc/llvm-project?rev=195325&view=rev
Log:
[tsan] add a run-time-side regression test for https://code.google.com/p/thread-sanitizer/issues/detail?id=40 (tsan-hostile load speculation)

Added:
    compiler-rt/trunk/lib/tsan/lit_tests/race_on_speculative_load.cc

Added: compiler-rt/trunk/lib/tsan/lit_tests/race_on_speculative_load.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/tsan/lit_tests/race_on_speculative_load.cc?rev=195325&view=auto
==============================================================================
--- compiler-rt/trunk/lib/tsan/lit_tests/race_on_speculative_load.cc (added)
+++ compiler-rt/trunk/lib/tsan/lit_tests/race_on_speculative_load.cc Thu Nov 21 01:31:12 2013
@@ -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);
+}





More information about the llvm-commits mailing list