tsan: update output tests to race on heap memory
authorDmitry Vyukov <dvyukov@google.com>
Mon, 14 May 2012 14:00:07 +0000 (14:00 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Mon, 14 May 2012 14:00:07 +0000 (14:00 +0000)
Races on stack of main thread are problematic for COMPAT mapping, because it's not 1-to-1 and race addr is not properly mapped from shadow back to application memory.
Update output tests to race heap memory.

llvm-svn: 156758

compiler-rt/lib/tsan/output_tests/mop_with_offset.cc
compiler-rt/lib/tsan/output_tests/mop_with_offset2.cc

index c785de3..fc497bf 100644 (file)
@@ -17,14 +17,15 @@ void *Thread2(void *x) {
 }
 
 int main() {
-  int data = 42;
-  fprintf(stderr, "ptr1=%p\n", &data);
-  fprintf(stderr, "ptr2=%p\n", (char*)&data + 2);
+  int *data = new int(42);
+  fprintf(stderr, "ptr1=%p\n", data);
+  fprintf(stderr, "ptr2=%p\n", (char*)data + 2);
   pthread_t t[2];
-  pthread_create(&t[0], NULL, Thread1, &data);
-  pthread_create(&t[1], NULL, Thread2, &data);
+  pthread_create(&t[0], NULL, Thread1, data);
+  pthread_create(&t[1], NULL, Thread2, data);
   pthread_join(t[0], NULL);
   pthread_join(t[1], NULL);
+  delete data;
 }
 
 // CHECK: ptr1=[[PTR1:0x[0-9,a-f]+]]
index 8c0ec07..bbeda55 100644 (file)
@@ -17,14 +17,15 @@ void *Thread2(void *x) {
 }
 
 int main() {
-  int data = 42;
-  fprintf(stderr, "ptr1=%p\n", &data);
-  fprintf(stderr, "ptr2=%p\n", (char*)&data + 2);
+  int *data = new int(42);
+  fprintf(stderr, "ptr1=%p\n", data);
+  fprintf(stderr, "ptr2=%p\n", (char*)data + 2);
   pthread_t t[2];
-  pthread_create(&t[0], NULL, Thread1, &data);
-  pthread_create(&t[1], NULL, Thread2, &data);
+  pthread_create(&t[0], NULL, Thread1, data);
+  pthread_create(&t[1], NULL, Thread2, data);
   pthread_join(t[0], NULL);
   pthread_join(t[1], NULL);
+  delete data;
 }
 
 // CHECK: ptr1=[[PTR1:0x[0-9,a-f]+]]