diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2015-01-18 16:23:48 +0000 |
| commit | 06d4ba388873e6d1cfa9cd715a8935ecc8cd2097 (patch) | |
| tree | 3eb853da77d46cc77c4b017525a422f9ddb1385b /test/Analysis/pthreadlock.c | |
| parent | 30d791273d07fac9c0c1641a0731191bca6e8606 (diff) | |
Diffstat (limited to 'test/Analysis/pthreadlock.c')
| -rw-r--r-- | test/Analysis/pthreadlock.c | 40 |
1 files changed, 17 insertions, 23 deletions
diff --git a/test/Analysis/pthreadlock.c b/test/Analysis/pthreadlock.c index 2a59e0ffe98a..a6e29e78ff38 100644 --- a/test/Analysis/pthreadlock.c +++ b/test/Analysis/pthreadlock.c @@ -2,31 +2,10 @@ // Tests performing normal locking patterns and wrong locking orders -typedef struct { - void *foo; -} pthread_mutex_t; - -typedef struct { - void *foo; -} pthread_mutexattr_t; - -typedef struct { - void *foo; -} lck_grp_t; - -typedef pthread_mutex_t lck_mtx_t; - -extern int pthread_mutex_lock(pthread_mutex_t *); -extern int pthread_mutex_unlock(pthread_mutex_t *); -extern int pthread_mutex_trylock(pthread_mutex_t *); -extern int pthread_mutex_destroy(pthread_mutex_t *); -extern int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr); -extern int lck_mtx_lock(lck_mtx_t *); -extern int lck_mtx_unlock(lck_mtx_t *); -extern int lck_mtx_try_lock(lck_mtx_t *); -extern void lck_mtx_destroy(lck_mtx_t *lck, lck_grp_t *grp); +#include "Inputs/system-header-simulator-for-pthread-lock.h" pthread_mutex_t mtx1, mtx2; +pthread_mutex_t *pmtx; lck_mtx_t lck1, lck2; lck_grp_t grp1; @@ -184,6 +163,21 @@ ok20(void) } void +ok21(void) { + pthread_mutex_lock(pmtx); // no-warning + pthread_mutex_unlock(pmtx); // no-warning +} + +void +ok22(void) { + pthread_mutex_lock(pmtx); // no-warning + pthread_mutex_unlock(pmtx); // no-warning + pthread_mutex_lock(pmtx); // no-warning + pthread_mutex_unlock(pmtx); // no-warning +} + + +void bad1(void) { pthread_mutex_lock(&mtx1); // no-warning |
