[compiler-rt] d78782f - tsan: fix warnings in tests
Dmitry Vyukov via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 28 22:42:24 PDT 2021
Author: Dmitry Vyukov
Date: 2021-04-29T07:42:18+02:00
New Revision: d78782f6a6ee98defe12ec9dde22144e1fe36ce6
URL: https://github.com/llvm/llvm-project/commit/d78782f6a6ee98defe12ec9dde22144e1fe36ce6
DIFF: https://github.com/llvm/llvm-project/commit/d78782f6a6ee98defe12ec9dde22144e1fe36ce6.diff
LOG: tsan: fix warnings in tests
Fix format specifier.
Fix warnings about non-standard attribute placement.
Make free_race2.c test a bit more interesting:
test access with/without an offset.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D101424
Added:
Modified:
compiler-rt/test/tsan/fiber_cleanup.cpp
compiler-rt/test/tsan/free_race.c
compiler-rt/test/tsan/free_race2.c
compiler-rt/test/tsan/sleep_sync.cpp
Removed:
################################################################################
diff --git a/compiler-rt/test/tsan/fiber_cleanup.cpp b/compiler-rt/test/tsan/fiber_cleanup.cpp
index 494830e4385f2..b914b0b478bf3 100644
--- a/compiler-rt/test/tsan/fiber_cleanup.cpp
+++ b/compiler-rt/test/tsan/fiber_cleanup.cpp
@@ -9,7 +9,7 @@
long count_memory_mappings() {
pid_t my_pid = getpid();
char proc_file_name[128];
- snprintf(proc_file_name, sizeof(proc_file_name), "/proc/%ld/maps", my_pid);
+ snprintf(proc_file_name, sizeof(proc_file_name), "/proc/%d/maps", my_pid);
FILE *proc_file = fopen(proc_file_name, "r");
long line_count = 0;
diff --git a/compiler-rt/test/tsan/free_race.c b/compiler-rt/test/tsan/free_race.c
index eb66233b8038c..af86b447a07cd 100644
--- a/compiler-rt/test/tsan/free_race.c
+++ b/compiler-rt/test/tsan/free_race.c
@@ -15,7 +15,7 @@ void *Thread1(void *x) {
return NULL;
}
-void *Thread2(void *x) __attribute__((noinline)) {
+__attribute__((noinline)) void *Thread2(void *x) {
barrier_wait(&barrier);
pthread_mutex_lock(&mtx);
mem[0] = 42;
diff --git a/compiler-rt/test/tsan/free_race2.c b/compiler-rt/test/tsan/free_race2.c
index de6b2ae1fcbb4..a2137a7cdc709 100644
--- a/compiler-rt/test/tsan/free_race2.c
+++ b/compiler-rt/test/tsan/free_race2.c
@@ -1,23 +1,34 @@
// RUN: %clang_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s
+// RUN: %clang_tsan -O1 -DACCESS_OFFSET=4 %s -o %t && %deflake %run %t | FileCheck %s
#include <stdlib.h>
-void __attribute__((noinline)) foo(int *mem) {
+#ifndef ACCESS_OFFSET
+#define ACCESS_OFFSET 0
+#endif
+
+__attribute__((noinline)) void foo(void *mem) {
+ free(mem);
+}
+
+__attribute__((noinline)) void baz(void *mem) {
free(mem);
}
-void __attribute__((noinline)) bar(int *mem) {
- mem[0] = 42;
+__attribute__((noinline)) void bar(void *mem) {
+ *(long*)((char*)mem + ACCESS_OFFSET) = 42;
}
int main() {
- int *mem = (int*)malloc(100);
+ void *mem = malloc(100);
+ baz(mem);
+ mem = malloc(100);
foo(mem);
bar(mem);
return 0;
}
// CHECK: WARNING: ThreadSanitizer: heap-use-after-free
-// CHECK: Write of size 4 at {{.*}} by main thread:
+// CHECK: Write of size 8 at {{.*}} by main thread:
// CHECK: #0 bar
// CHECK: #1 main
// CHECK: Previous write of size 8 at {{.*}} by main thread:
diff --git a/compiler-rt/test/tsan/sleep_sync.cpp b/compiler-rt/test/tsan/sleep_sync.cpp
index 3b2bfd0b3f79c..7d6787edfe740 100644
--- a/compiler-rt/test/tsan/sleep_sync.cpp
+++ b/compiler-rt/test/tsan/sleep_sync.cpp
@@ -3,7 +3,7 @@
int X = 0;
-void MySleep() __attribute__((noinline)) {
+__attribute__((noinline)) void MySleep() {
sleep(1); // the sleep that must appear in the report
}
More information about the llvm-commits
mailing list