commit c69445c1e07425e827ce936d7c416f7972b51aa2 Author: iraisr Date: Tue Jan 12 20:31:15 2016 +0000 Fix typo in Helgrind's wrapper of pthread_spin_destroy(). Patch provided by: Jason Dillaman . Fixes BZ #357871. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15756 a5019735-40e9-0310-863c-91ae7b9d1cf9 diff --git a/helgrind/hg_intercepts.c b/helgrind/hg_intercepts.c index fd53208..ff36e93 100644 --- a/helgrind/hg_intercepts.c +++ b/helgrind/hg_intercepts.c @@ -1854,13 +1854,13 @@ static int pthread_spin_destroy_WRK(pthread_spinlock_t *lock) return ret; } #if defined(VGO_linux) - PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy + PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy pthread_spinlock_t *lock) { return pthread_spin_destroy_WRK(lock); } #elif defined(VGO_darwin) #elif defined(VGO_solaris) - PTH_FUNC(int, pthreadZuspinZusdestroy, // pthread_spin_destroy + PTH_FUNC(int, pthreadZuspinZudestroy, // pthread_spin_destroy pthread_spinlock_t *lock) { return pthread_spin_destroy_WRK(lock); } diff --git a/helgrind/tests/tc20_verifywrap.c b/helgrind/tests/tc20_verifywrap.c index f71c7f8..c110000 100644 --- a/helgrind/tests/tc20_verifywrap.c +++ b/helgrind/tests/tc20_verifywrap.c @@ -29,6 +29,11 @@ #endif #endif /* __sun__ */ +typedef union { + pthread_spinlock_t spinlock; + pthread_rwlock_t rwlock; +} spin_rw_lock; + short unprotected = 0; void* lazy_child ( void* v ) { @@ -236,6 +241,20 @@ int main ( void ) r= pthread_rwlock_init( &rwl3, NULL ); assert(!r); r= pthread_rwlock_rdlock( &rwl3 ); assert(!r); + /* --------- pthread_spin_* --------- */ + + fprintf(stderr, + "\n---------------- pthread_spin_* ----------------\n\n"); + + /* The following sequence verifies correct wrapping of pthread_spin_init() + and pthread_spin_destroy(). */ + spin_rw_lock srwl1; + pthread_spin_init(&srwl1.spinlock, PTHREAD_PROCESS_PRIVATE); + pthread_spin_destroy(&srwl1.spinlock); + + pthread_rwlock_init(&srwl1.rwlock, NULL); + pthread_rwlock_destroy(&srwl1.rwlock); + /* ------------- sem_* ------------- */ /* This is pretty lame, and duplicates tc18_semabuse.c. */ diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp b/helgrind/tests/tc20_verifywrap.stderr.exp index d9019d4..372daea 100644 --- a/helgrind/tests/tc20_verifywrap.stderr.exp +++ b/helgrind/tests/tc20_verifywrap.stderr.exp @@ -14,21 +14,21 @@ Thread #x is the program's root thread Thread #x was created ... by 0x........: pthread_create@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:81) + by 0x........: main (tc20_verifywrap.c:86) ---------------------------------------------------------------- Possible data race during write of size 2 at 0x........ by thread #x Locks held: none - at 0x........: main (tc20_verifywrap.c:83) + at 0x........: main (tc20_verifywrap.c:88) This conflicts with a previous write of size 2 by thread #x Locks held: none - at 0x........: racy_child (tc20_verifywrap.c:39) + at 0x........: racy_child (tc20_verifywrap.c:44) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... Location 0x........ is 0 bytes inside global var "unprotected" - declared at tc20_verifywrap.c:32 + declared at tc20_verifywrap.c:37 ---------------------------------------------------------------- @@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed with error code 35 (EDEADLK: Resource deadlock would occur) at 0x........: pthread_join_WRK (hg_intercepts.c:...) by 0x........: pthread_join (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:88) + by 0x........: main (tc20_verifywrap.c:93) ---------------- pthread_mutex_lock et al ---------------- @@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed Thread #x's call to pthread_mutex_init failed with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint) at 0x........: pthread_mutex_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:102) + by 0x........: main (tc20_verifywrap.c:107) ---------------------------------------------------------------- Thread #x: pthread_mutex_destroy of a locked mutex at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_destroy failed with error code 16 (EBUSY: Device or resource busy) at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_lock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_lock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_lock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:118) + by 0x........: main (tc20_verifywrap.c:123) ---------------------------------------------------------------- @@ -77,7 +77,7 @@ Thread #x's call to pthread_mutex_trylock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_trylock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_trylock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:126) + by 0x........: main (tc20_verifywrap.c:131) ---------------------------------------------------------------- @@ -85,14 +85,14 @@ Thread #x's call to pthread_mutex_timedlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:131) + by 0x........: main (tc20_verifywrap.c:136) ---------------------------------------------------------------- Thread #x unlocked an invalid lock at 0x........ at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------------------------------------------------------- @@ -100,7 +100,7 @@ Thread #x's call to pthread_mutex_unlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------- pthread_cond_wait et al ---------------- @@ -110,7 +110,7 @@ Thread #x's call to pthread_mutex_unlock failed Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- @@ -118,14 +118,14 @@ Thread #x's call to pthread_cond_wait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:162) + by 0x........: main (tc20_verifywrap.c:167) FIXME: can't figure out how to verify wrap of pthread_cond_signal @@ -135,7 +135,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:168) + by 0x........: main (tc20_verifywrap.c:173) FIXME: can't figure out how to verify wrap of pthread_broadcast_signal @@ -145,7 +145,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------------------------------------------------------- @@ -153,7 +153,7 @@ Thread #x's call to pthread_cond_timedwait failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------- pthread_rwlock_* ---------------- @@ -164,13 +164,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:188) + by 0x........: main (tc20_verifywrap.c:193) Location 0x........ is 0 bytes inside local var "rwl" - declared at tc20_verifywrap.c:52, in frame #x of thread x + declared at tc20_verifywrap.c:57, in frame #x of thread x (1) no error on next line @@ -182,13 +182,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside local var "rwl2" - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x (4) no error on next line @@ -202,14 +202,17 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside local var "rwl2" - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x + + +---------------- pthread_spin_* ---------------- ---------------- sem_* ---------------- @@ -220,7 +223,7 @@ Thread #x's call to sem_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: sem_init_WRK (hg_intercepts.c:...) by 0x........: sem_init@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:248) + by 0x........: main (tc20_verifywrap.c:267) FIXME: can't figure out how to verify wrap of sem_destroy @@ -230,7 +233,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post at 0x........: sem_wait_WRK (hg_intercepts.c:...) by 0x........: sem_wait (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:262) + by 0x........: main (tc20_verifywrap.c:281) ---------------------------------------------------------------- @@ -239,7 +242,7 @@ Thread #x's call to sem_post failed at 0x........: sem_post_WRK (hg_intercepts.c:...) by 0x........: sem_post (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:265) + by 0x........: main (tc20_verifywrap.c:284) FIXME: can't figure out how to verify wrap of sem_post diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 index f109673..b823d40 100644 --- a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 +++ b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.18 @@ -14,21 +14,21 @@ Thread #x is the program's root thread Thread #x was created ... by 0x........: pthread_create@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:81) + by 0x........: main (tc20_verifywrap.c:86) ---------------------------------------------------------------- Possible data race during write of size 2 at 0x........ by thread #x Locks held: none - at 0x........: main (tc20_verifywrap.c:83) + at 0x........: main (tc20_verifywrap.c:88) This conflicts with a previous write of size 2 by thread #x Locks held: none - at 0x........: racy_child (tc20_verifywrap.c:39) + at 0x........: racy_child (tc20_verifywrap.c:44) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... Location 0x........ is 0 bytes inside global var "unprotected" - declared at tc20_verifywrap.c:32 + declared at tc20_verifywrap.c:37 ---------------------------------------------------------------- @@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed with error code 35 (EDEADLK: Resource deadlock would occur) at 0x........: pthread_join_WRK (hg_intercepts.c:...) by 0x........: pthread_join (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:88) + by 0x........: main (tc20_verifywrap.c:93) ---------------- pthread_mutex_lock et al ---------------- @@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed Thread #x's call to pthread_mutex_init failed with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint) at 0x........: pthread_mutex_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:102) + by 0x........: main (tc20_verifywrap.c:107) ---------------------------------------------------------------- Thread #x: pthread_mutex_destroy of a locked mutex at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_lock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_lock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_lock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:118) + by 0x........: main (tc20_verifywrap.c:123) ---------------------------------------------------------------- @@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_trylock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_trylock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_trylock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:126) + by 0x........: main (tc20_verifywrap.c:131) ---------------------------------------------------------------- @@ -77,14 +77,14 @@ Thread #x's call to pthread_mutex_timedlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:131) + by 0x........: main (tc20_verifywrap.c:136) ---------------------------------------------------------------- Thread #x unlocked an invalid lock at 0x........ at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------------------------------------------------------- @@ -92,7 +92,7 @@ Thread #x's call to pthread_mutex_unlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------- pthread_cond_wait et al ---------------- @@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- @@ -110,14 +110,14 @@ Thread #x's call to pthread_cond_wait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:162) + by 0x........: main (tc20_verifywrap.c:167) FIXME: can't figure out how to verify wrap of pthread_cond_signal @@ -127,7 +127,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:168) + by 0x........: main (tc20_verifywrap.c:173) FIXME: can't figure out how to verify wrap of pthread_broadcast_signal @@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------------------------------------------------------- @@ -145,7 +145,7 @@ Thread #x's call to pthread_cond_timedwait failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------- pthread_rwlock_* ---------------- @@ -156,11 +156,11 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:188) + by 0x........: main (tc20_verifywrap.c:193) (1) no error on next line (2) no error on next line @@ -171,11 +171,11 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) (4) no error on next line (5) no error on next line @@ -187,11 +187,15 @@ Thread #x unlocked a not-locked lock at 0x........ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) + + + +---------------- pthread_spin_* ---------------- ---------------- sem_* ---------------- @@ -202,7 +206,7 @@ Thread #x's call to sem_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: sem_init_WRK (hg_intercepts.c:...) by 0x........: sem_init@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:243) + by 0x........: main (tc20_verifywrap.c:267) FIXME: can't figure out how to verify wrap of sem_destroy @@ -212,7 +216,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post at 0x........: sem_wait_WRK (hg_intercepts.c:...) by 0x........: sem_wait (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:257) + by 0x........: main (tc20_verifywrap.c:281) ---------------------------------------------------------------- @@ -220,7 +224,7 @@ Thread #x's call to sem_post failed with error code 22 (EINVAL: Invalid argument) at 0x........: sem_post_WRK (hg_intercepts.c:...) by 0x........: sem_post (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:260) + by 0x........: main (tc20_verifywrap.c:284) FIXME: can't figure out how to verify wrap of sem_post diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21 b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21 index 7f4eb21..2a2ee9b 100644 --- a/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21 +++ b/helgrind/tests/tc20_verifywrap.stderr.exp-glibc-2.21 @@ -14,21 +14,21 @@ Thread #x is the program's root thread Thread #x was created ... by 0x........: pthread_create@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:81) + by 0x........: main (tc20_verifywrap.c:86) ---------------------------------------------------------------- Possible data race during write of size 2 at 0x........ by thread #x Locks held: none - at 0x........: main (tc20_verifywrap.c:83) + at 0x........: main (tc20_verifywrap.c:88) This conflicts with a previous write of size 2 by thread #x Locks held: none - at 0x........: racy_child (tc20_verifywrap.c:39) + at 0x........: racy_child (tc20_verifywrap.c:44) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... Location 0x........ is 0 bytes inside global var "unprotected" - declared at tc20_verifywrap.c:32 + declared at tc20_verifywrap.c:37 ---------------------------------------------------------------- @@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed with error code 35 (EDEADLK: Resource deadlock would occur) at 0x........: pthread_join_WRK (hg_intercepts.c:...) by 0x........: pthread_join (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:88) + by 0x........: main (tc20_verifywrap.c:93) ---------------- pthread_mutex_lock et al ---------------- @@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed Thread #x's call to pthread_mutex_init failed with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint) at 0x........: pthread_mutex_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:102) + by 0x........: main (tc20_verifywrap.c:107) ---------------------------------------------------------------- Thread #x: pthread_mutex_destroy of a locked mutex at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_destroy failed with error code 16 (EBUSY: Device or resource busy) at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_lock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_lock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_lock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:118) + by 0x........: main (tc20_verifywrap.c:123) ---------------------------------------------------------------- @@ -77,7 +77,7 @@ Thread #x's call to pthread_mutex_trylock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_trylock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_trylock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:126) + by 0x........: main (tc20_verifywrap.c:131) ---------------------------------------------------------------- @@ -85,14 +85,14 @@ Thread #x's call to pthread_mutex_timedlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:131) + by 0x........: main (tc20_verifywrap.c:136) ---------------------------------------------------------------- Thread #x unlocked an invalid lock at 0x........ at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------------------------------------------------------- @@ -100,7 +100,7 @@ Thread #x's call to pthread_mutex_unlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------- pthread_cond_wait et al ---------------- @@ -110,7 +110,7 @@ Thread #x's call to pthread_mutex_unlock failed Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- @@ -118,14 +118,14 @@ Thread #x's call to pthread_cond_wait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:162) + by 0x........: main (tc20_verifywrap.c:167) FIXME: can't figure out how to verify wrap of pthread_cond_signal @@ -135,7 +135,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:168) + by 0x........: main (tc20_verifywrap.c:173) FIXME: can't figure out how to verify wrap of pthread_broadcast_signal @@ -145,7 +145,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------------------------------------------------------- @@ -153,7 +153,7 @@ Thread #x's call to pthread_cond_timedwait failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------- pthread_rwlock_* ---------------- @@ -164,13 +164,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:188) + by 0x........: main (tc20_verifywrap.c:193) Location 0x........ is 0 bytes inside local var "rwl" - declared at tc20_verifywrap.c:52, in frame #x of thread x + declared at tc20_verifywrap.c:57, in frame #x of thread x (1) no error on next line @@ -182,13 +182,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside local var "rwl2" - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x (4) no error on next line @@ -202,14 +202,17 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside local var "rwl2" - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x + + +---------------- pthread_spin_* ---------------- ---------------- sem_* ---------------- @@ -220,7 +223,7 @@ Thread #x's call to sem_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: sem_init_WRK (hg_intercepts.c:...) by 0x........: sem_init@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:248) + by 0x........: main (tc20_verifywrap.c:267) FIXME: can't figure out how to verify wrap of sem_destroy @@ -230,7 +233,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post at 0x........: sem_wait_WRK (hg_intercepts.c:...) by 0x........: sem_wait (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:262) + by 0x........: main (tc20_verifywrap.c:281) FIXME: can't figure out how to verify wrap of sem_post diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-s390x b/helgrind/tests/tc20_verifywrap.stderr.exp-s390x index 3f60f79..f19215e 100644 --- a/helgrind/tests/tc20_verifywrap.stderr.exp-s390x +++ b/helgrind/tests/tc20_verifywrap.stderr.exp-s390x @@ -15,22 +15,22 @@ Thread #x was created ... by 0x........: pthread_create_WRK (hg_intercepts.c:...) by 0x........: pthread_create@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:81) + by 0x........: main (tc20_verifywrap.c:86) ---------------------------------------------------------------- Possible data race during write of size 2 at 0x........ by thread #x Locks held: none - at 0x........: main (tc20_verifywrap.c:83) + at 0x........: main (tc20_verifywrap.c:88) This conflicts with a previous write of size 2 by thread #x Locks held: none - at 0x........: racy_child (tc20_verifywrap.c:39) + at 0x........: racy_child (tc20_verifywrap.c:44) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... Location 0x........ is 0 bytes inside global var "unprotected" -declared at tc20_verifywrap.c:32 +declared at tc20_verifywrap.c:37 ---------------------------------------------------------------- @@ -38,7 +38,7 @@ Thread #x's call to pthread_join failed with error code 35 (EDEADLK: Resource deadlock would occur) at 0x........: pthread_join_WRK (hg_intercepts.c:...) by 0x........: pthread_join (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:88) + by 0x........: main (tc20_verifywrap.c:93) ---------------- pthread_mutex_lock et al ---------------- @@ -48,14 +48,14 @@ Thread #x's call to pthread_join failed Thread #x's call to pthread_mutex_init failed with error code 95 (EOPNOTSUPP: Operation not supported on transport endpoint) at 0x........: pthread_mutex_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:102) + by 0x........: main (tc20_verifywrap.c:107) ---------------------------------------------------------------- Thread #x: pthread_mutex_destroy of a locked mutex at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -63,7 +63,7 @@ Thread #x's call to pthread_mutex_destroy failed with error code 16 (EBUSY: Device or resource busy) at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -71,7 +71,7 @@ Thread #x's call to pthread_mutex_lock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_lock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_lock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:118) + by 0x........: main (tc20_verifywrap.c:123) ---------------------------------------------------------------- @@ -79,7 +79,7 @@ Thread #x's call to pthread_mutex_trylock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_trylock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_trylock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:126) + by 0x........: main (tc20_verifywrap.c:131) ---------------------------------------------------------------- @@ -87,14 +87,14 @@ Thread #x's call to pthread_mutex_timedlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:131) + by 0x........: main (tc20_verifywrap.c:136) ---------------------------------------------------------------- Thread #x unlocked an invalid lock at 0x........ at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------------------------------------------------------- @@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed with error code 22 (EINVAL: Invalid argument) at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------- pthread_cond_wait et al ---------------- @@ -112,7 +112,7 @@ Thread #x's call to pthread_mutex_unlock failed Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- @@ -120,14 +120,14 @@ Thread #x's call to pthread_cond_wait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:162) + by 0x........: main (tc20_verifywrap.c:167) FIXME: can't figure out how to verify wrap of pthread_cond_signal @@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:168) + by 0x........: main (tc20_verifywrap.c:173) FIXME: can't figure out how to verify wrap of pthread_broadcast_signal @@ -147,7 +147,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------------------------------------------------------- @@ -155,7 +155,7 @@ Thread #x's call to pthread_cond_timedwait failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------- pthread_rwlock_* ---------------- @@ -166,11 +166,11 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:188) + by 0x........: main (tc20_verifywrap.c:193) (1) no error on next line (2) no error on next line @@ -181,11 +181,11 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) (4) no error on next line (5) no error on next line @@ -198,11 +198,15 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) + + + +---------------- pthread_spin_* ---------------- ---------------- sem_* ---------------- @@ -213,7 +217,7 @@ Thread #x's call to sem_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: sem_init_WRK (hg_intercepts.c:...) by 0x........: sem_init@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:243) + by 0x........: main (tc20_verifywrap.c:267) FIXME: can't figure out how to verify wrap of sem_destroy @@ -223,7 +227,7 @@ FIXME: can't figure out how to verify wrap of sem_destroy Thread #x: Bug in libpthread: sem_wait succeeded on semaphore without prior sem_post at 0x........: sem_wait_WRK (hg_intercepts.c:...) by 0x........: sem_wait (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:257) + by 0x........: main (tc20_verifywrap.c:281) FIXME: can't figure out how to verify wrap of sem_post diff --git a/helgrind/tests/tc20_verifywrap.stderr.exp-solaris b/helgrind/tests/tc20_verifywrap.stderr.exp-solaris index 921ebf5..072cc18 100644 --- a/helgrind/tests/tc20_verifywrap.stderr.exp-solaris +++ b/helgrind/tests/tc20_verifywrap.stderr.exp-solaris @@ -14,21 +14,21 @@ Thread #x is the program's root thread Thread #x was created ... by 0x........: pthread_create@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:81) + by 0x........: main (tc20_verifywrap.c:86) ---------------------------------------------------------------- Possible data race during write of size 2 at 0x........ by thread #x Locks held: none - at 0x........: main (tc20_verifywrap.c:83) + at 0x........: main (tc20_verifywrap.c:88) This conflicts with a previous write of size 2 by thread #x Locks held: none - at 0x........: racy_child (tc20_verifywrap.c:39) + at 0x........: racy_child (tc20_verifywrap.c:44) by 0x........: mythread_wrapper (hg_intercepts.c:...) ... Location 0x........ is 0 bytes inside global var "unprotected" - declared at tc20_verifywrap.c:32 + declared at tc20_verifywrap.c:37 ---------------------------------------------------------------- @@ -36,7 +36,7 @@ Thread #x's call to pthread_join failed with error code 45 (EDEADLK: Resource deadlock would occur) at 0x........: pthread_join_WRK (hg_intercepts.c:...) by 0x........: pthread_join (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:88) + by 0x........: main (tc20_verifywrap.c:93) ---------------- pthread_mutex_lock et al ---------------- @@ -46,14 +46,14 @@ Thread #x's call to pthread_join failed Thread #x's call to mutex_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: pthread_mutex_init (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:102) + by 0x........: main (tc20_verifywrap.c:107) ---------------------------------------------------------------- Thread #x: pthread_mutex_destroy of a locked mutex at 0x........: mutex_destroy_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_destroy (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:112) + by 0x........: main (tc20_verifywrap.c:117) ---------------------------------------------------------------- @@ -61,7 +61,7 @@ Thread #x's call to pthread_mutex_lock failed with error code 1 (EPERM: Operation not permitted) at 0x........: mutex_lock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_lock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:118) + by 0x........: main (tc20_verifywrap.c:123) ---------------------------------------------------------------- @@ -69,7 +69,7 @@ Thread #x's call to pthread_mutex_trylock failed with error code 1 (EPERM: Operation not permitted) at 0x........: mutex_trylock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_trylock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:126) + by 0x........: main (tc20_verifywrap.c:131) ---------------------------------------------------------------- @@ -77,14 +77,14 @@ Thread #x's call to pthread_mutex_timedlock failed with error code 1 (EPERM: Operation not permitted) at 0x........: mutex_timedlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_timedlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:131) + by 0x........: main (tc20_verifywrap.c:136) ---------------------------------------------------------------- Thread #x unlocked an invalid lock at 0x........ at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------------------------------------------------------- @@ -92,7 +92,7 @@ Thread #x's call to pthread_mutex_unlock failed with error code 1 (EPERM: Operation not permitted) at 0x........: mutex_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_mutex_unlock (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:135) + by 0x........: main (tc20_verifywrap.c:140) ---------------- pthread_cond_wait et al ---------------- @@ -102,7 +102,7 @@ Thread #x's call to pthread_mutex_unlock failed Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- @@ -110,14 +110,14 @@ Thread #x's call to pthread_cond_wait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_wait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_wait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:157) + by 0x........: main (tc20_verifywrap.c:162) ---------------------------------------------------------------- Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_signal_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_signal@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:162) + by 0x........: main (tc20_verifywrap.c:167) FIXME: can't figure out how to verify wrap of pthread_cond_signal @@ -127,7 +127,7 @@ FIXME: can't figure out how to verify wrap of pthread_cond_signal Thread #x: pthread_cond_{signal,broadcast}: dubious: associated lock is not held by any thread at 0x........: pthread_cond_broadcast_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_broadcast@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:168) + by 0x........: main (tc20_verifywrap.c:173) FIXME: can't figure out how to verify wrap of pthread_broadcast_signal @@ -137,7 +137,7 @@ FIXME: can't figure out how to verify wrap of pthread_broadcast_signal Thread #x: pthread_cond_{timed}wait called with un-held mutex at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------------------------------------------------------- @@ -145,7 +145,7 @@ Thread #x's call to pthread_cond_timedwait failed with error code 1 (EPERM: Operation not permitted) at 0x........: pthread_cond_timedwait_WRK (hg_intercepts.c:...) by 0x........: pthread_cond_timedwait@* (hg_intercepts.c:...) - by 0x........: main (tc20_verifywrap.c:175) + by 0x........: main (tc20_verifywrap.c:180) ---------------- pthread_rwlock_* ---------------- @@ -156,13 +156,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:188) + by 0x........: main (tc20_verifywrap.c:193) Location 0x........ is 0 bytes inside rwl.__pthread_rwlock_readers, - declared at tc20_verifywrap.c:52, in frame #x of thread x + declared at tc20_verifywrap.c:57, in frame #x of thread x ---------------------------------------------------------------- @@ -172,7 +172,7 @@ Thread #x's call to pthread_rwlock_unlock failed at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:189) + by 0x........: main (tc20_verifywrap.c:194) (1) no error on next line (2) no error on next line @@ -183,13 +183,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers, - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x ---------------------------------------------------------------- @@ -199,7 +199,7 @@ Thread #x's call to pthread_rwlock_unlock failed at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:206) + by 0x........: main (tc20_verifywrap.c:211) (4) no error on next line (5) no error on next line @@ -212,13 +212,13 @@ Thread #x unlocked a not-locked lock at 0x........ at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) Lock at 0x........ was first observed at 0x........: pthread_rwlock_init (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:196) + by 0x........: main (tc20_verifywrap.c:201) Location 0x........ is 0 bytes inside rwl2.__pthread_rwlock_readers, - declared at tc20_verifywrap.c:53, in frame #x of thread x + declared at tc20_verifywrap.c:58, in frame #x of thread x ---------------------------------------------------------------- @@ -228,7 +228,11 @@ Thread #x's call to pthread_rwlock_unlock failed at 0x........: pthread_rwlock_unlock_WRK (hg_intercepts.c:...) by 0x........: pthread_rwlock_unlock (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:227) + by 0x........: main (tc20_verifywrap.c:232) + + + +---------------- pthread_spin_* ---------------- ---------------- sem_* ---------------- @@ -239,7 +243,7 @@ Thread #x's call to sema_init failed with error code 22 (EINVAL: Invalid argument) at 0x........: sema_init (hg_intercepts.c:...) ... - by 0x........: main (tc20_verifywrap.c:248) + by 0x........: main (tc20_verifywrap.c:267) FIXME: can't figure out how to verify wrap of sem_destroy