pth_process_shared_mutex.vgtest \
pth_spinlock.stderr.exp \
pth_spinlock.vgtest \
+ pth_uninitialized_cond.stderr.exp \
+ pth_uninitialized_cond.vgtest \
qt4_atomic.stderr.exp \
qt4_atomic.vgtest \
qt4_mutex.stderr.exp \
pth_inconsistent_cond_wait \
pth_mutex_reinit \
pth_process_shared_mutex \
+ pth_uninitialized_cond \
recursive_mutex \
rwlock_race \
rwlock_test \
--- /dev/null
+/* Test program to verify whether DRD only complains about uninitialized
+ * condition variables for dynamically allocated memory.
+ */
+
+
+#include <pthread.h>
+#include <stdio.h>
+
+
+static pthread_cond_t s_cond1 = PTHREAD_COND_INITIALIZER;
+static pthread_cond_t s_cond2 = PTHREAD_COND_INITIALIZER;
+
+
+int main(int argc, char** argv)
+{
+ fprintf(stderr, "Statically initialized condition variable.\n");
+
+ pthread_cond_signal(&s_cond1);
+
+ fprintf(stderr, "Uninitialized condition variable.\n");
+
+ *((char*)&s_cond2 + sizeof(s_cond2) - 1) ^= 1;
+ pthread_cond_signal(&s_cond2);
+
+ fprintf(stderr, "Done.\n");
+
+ return 0;
+}
--- /dev/null
+
+Statically initialized condition variable.
+Uninitialized condition variable.
+condition variable has not been initialized: cond 0x........
+ at 0x........: pthread_cond_signal (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_uninitialized_cond.c:?)
+
+Done.
+
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
--- /dev/null
+prereq: test -e pth_uninitialized_cond && ./supported_libpthread
+vgopts: --read-var-info=yes --check-stack-var=yes
+prog: pth_uninitialized_cond