pth_detached2.stderr.exp \
pth_detached2.stdout.exp \
pth_detached2.vgtest \
+ pth_detached3.stderr.exp \
+ pth_detached3.vgtest \
pth_detached_sem.stderr.exp \
pth_detached_sem.stdout.exp \
pth_detached_sem.vgtest \
pth_create_chain \
pth_detached \
pth_detached_sem \
+ pth_detached3 \
pth_inconsistent_cond_wait \
pth_mutex_reinit \
pth_process_shared_mutex \
--- /dev/null
+/* Invoke pthread_detach() with an invalid thread ID. */
+
+#include <assert.h>
+#include <errno.h>
+#include <pthread.h>
+#include <stdio.h>
+
+static void* thread_func(void* arg)
+{
+ return 0;
+}
+
+int main(int argc, char** argv)
+{
+ pthread_t thread;
+
+ pthread_create(&thread, NULL, thread_func, NULL);
+ pthread_join(thread, NULL);
+
+ /* Invoke pthread_detach() with the thread ID of a joined thread. */
+ pthread_detach(thread);
+
+ /* Invoke pthread_detach() with an invalid thread ID. */
+ pthread_detach(thread + 1);
+
+ fprintf(stderr, "Finished.\n");
+
+ return 0;
+}
--- /dev/null
+
+pthread_detach(): invalid thread ID 0x........
+ at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_detached3.c:21)
+
+pthread_detach(): invalid thread ID 0x........
+ at 0x........: pthread_detach (drd_pthread_intercepts.c:?)
+ by 0x........: main (pth_detached3.c:24)
+
+Finished.
+
+ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
--- /dev/null
+prereq: ./supported_libpthread
+prog: pth_detached3