[compiler-rt] dbe36e4 - tsan: fix latent race size bug in test

Dmitry Vyukov via llvm-commits llvm-commits at lists.llvm.org
Fri Jul 30 02:39:33 PDT 2021


Author: Dmitry Vyukov
Date: 2021-07-30T11:39:26+02:00
New Revision: dbe36e4073e708816cbeb693ea52832f54f52f2a

URL: https://github.com/llvm/llvm-project/commit/dbe36e4073e708816cbeb693ea52832f54f52f2a
DIFF: https://github.com/llvm/llvm-project/commit/dbe36e4073e708816cbeb693ea52832f54f52f2a.diff

LOG: tsan: fix latent race size bug in test

The test contains a race in read/write syscalls.
The size of reported race depends on how the accessed
memory range split into granules inside of tsan runtime.
The test used to report access of size 8, because presumably
the buffer ended up being aligned to 8 bytes. But after
some unrelated changes this test started to report accesses
of size 1 (presumably .data layout changed), which makes
the test fail.
Guarantee alignment of the buf object explicitly.

Reviewed By: vitalybuka, melver

Differential Revision: https://reviews.llvm.org/D107131

Added: 
    

Modified: 
    compiler-rt/test/tsan/Linux/syscall.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/tsan/Linux/syscall.cpp b/compiler-rt/test/tsan/Linux/syscall.cpp
index 34d370c6369b7..6b46bda483b1c 100644
--- a/compiler-rt/test/tsan/Linux/syscall.cpp
+++ b/compiler-rt/test/tsan/Linux/syscall.cpp
@@ -6,7 +6,7 @@
 #include <sys/wait.h>
 
 int pipefd[2];
-char buf[10];
+unsigned long long buf[2];
 
 static void *thr(void *p) {
   barrier_wait(&barrier);


        


More information about the llvm-commits mailing list