xref: /llvm-project/compiler-rt/test/tsan/suppressions_mutex.cpp (revision bcaeed49cb063de9fe504aa29e1cadff8a7be710)
1*bcaeed49SFangrui Song // RUN: %clang_tsan -O1 %s -o %t && %env_tsan_opts=suppressions='%s.supp' %run %t 2>&1 | FileCheck %s
2*bcaeed49SFangrui Song #include "test.h"
3*bcaeed49SFangrui Song 
suppress_this(pthread_mutex_t * mu)4*bcaeed49SFangrui Song void __attribute__((noinline)) suppress_this(pthread_mutex_t *mu) {
5*bcaeed49SFangrui Song   pthread_mutex_destroy(mu);
6*bcaeed49SFangrui Song }
7*bcaeed49SFangrui Song 
main()8*bcaeed49SFangrui Song int main() {
9*bcaeed49SFangrui Song   pthread_mutex_t mu;
10*bcaeed49SFangrui Song   pthread_mutex_init(&mu, 0);
11*bcaeed49SFangrui Song   pthread_mutex_lock(&mu);
12*bcaeed49SFangrui Song   suppress_this(&mu);
13*bcaeed49SFangrui Song   fprintf(stderr, "DONE\n");
14*bcaeed49SFangrui Song   return 0;
15*bcaeed49SFangrui Song }
16*bcaeed49SFangrui Song 
17*bcaeed49SFangrui Song // CHECK-NOT: failed to open suppressions file
18*bcaeed49SFangrui Song // CHECK-NOT: WARNING: ThreadSanitizer:
19*bcaeed49SFangrui Song // CHECK: DONE
20