]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
testsuite: tsan: add fallback overload for pthread_cond_clockwait
authorAlexandre Oliva <oliva@adacore.com>
Wed, 15 Nov 2023 01:16:29 +0000 (22:16 -0300)
committerAlexandre Oliva <oliva@gnu.org>
Wed, 15 Nov 2023 01:24:28 +0000 (22:24 -0300)
LTS GNU/Linux distros from 2018, still in use, don't have
pthread_cond_clockwait.  There's no trivial way to detect it so as to
make the test conditional, but there's an easy enough way to silence
the fail due to lack of the function in libc, and that has nothing to
do with the false positive that this is testing against.

for  gcc/testsuite/ChangeLog

* g++.dg/tsan/pthread_cond_clockwait.C: Add fallback overload.

gcc/testsuite/g++.dg/tsan/pthread_cond_clockwait.C

index 82d6a5c8329ed95d7f379b811ebc9fbbc6338931..b43f3ebf80e2c0c74e21e2c13a9d05f4ccabc6db 100644 (file)
@@ -4,6 +4,19 @@
 
 #include <pthread.h>
 
+// This overloaded version should only be selected on targets that
+// don't have a pthread_cond_clockwait in pthread.h, and it will wait
+// indefinitely for the cond_signal that, in this testcase, ought to
+// be delivered.
+static inline int
+pthread_cond_clockwait (pthread_cond_t *cv,
+                       pthread_mutex_t *mtx,
+                       __clockid_t,
+                       void const /* struct timespec */ *)
+{
+  return pthread_cond_wait (cv, mtx);
+}                 
+
 pthread_cond_t cv;
 pthread_mutex_t mtx;