diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index 80df7dbd02..19a03b6fb0 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,15 @@ +2010-08-23 Joel Sherrill + + + CID 79/DEADCODE + CID 78/DEADCODE + CID 77/DEADCODE + CID 76/DEADCODE + * posix/src/condtimedwait.c, posix/src/mutextimedlock.c, + posix/src/prwlocktimedrdlock.c, posix/src/prwlocktimedwrlock.c, + posix/src/semtimedwait.c: Resolve various dead code issues identified + by Coverity scanner. + 2010-08-23 Joel Sherrill CID 99 diff --git a/cpukit/posix/src/condtimedwait.c b/cpukit/posix/src/condtimedwait.c index aa48131ecd..4134a73f8a 100644 --- a/cpukit/posix/src/condtimedwait.c +++ b/cpukit/posix/src/condtimedwait.c @@ -39,8 +39,9 @@ int pthread_cond_timedwait( const struct timespec *abstime ) { - Watchdog_Interval ticks; - bool already_timedout; + Watchdog_Interval ticks; + bool already_timedout; + POSIX_Absolute_timeout_conversion_results_t status; /* * POSIX requires that blocking calls with timeouts that take @@ -51,18 +52,14 @@ int pthread_cond_timedwait( * then we do a polling operation and convert the UNSATISFIED * status into the appropriate error. */ - switch ( _POSIX_Absolute_timeout_to_ticks(abstime, &ticks) ) { - case POSIX_ABSOLUTE_TIMEOUT_INVALID: - return EINVAL; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST: - case POSIX_ABSOLUTE_TIMEOUT_IS_NOW: - already_timedout = true; - break; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: - default: /* only to silence warnings */ - already_timedout = false; - break; - } + already_timedout = false; + status = _POSIX_Absolute_timeout_to_ticks(abstime, &ticks); + if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID ) + return EINVAL; + + if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST || + status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW ) + already_timedout = true; return _POSIX_Condition_variables_Wait_support( cond, diff --git a/cpukit/posix/src/mutextimedlock.c b/cpukit/posix/src/mutextimedlock.c index f1d4dcee08..576eba9eb8 100644 --- a/cpukit/posix/src/mutextimedlock.c +++ b/cpukit/posix/src/mutextimedlock.c @@ -72,15 +72,11 @@ int pthread_mutex_timedlock( * make sure the right reason is returned. */ if ( !do_wait && (lock_status == EBUSY) ) { - switch (lock_status) { - case POSIX_ABSOLUTE_TIMEOUT_INVALID: - return EINVAL; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST: - case POSIX_ABSOLUTE_TIMEOUT_IS_NOW: - return ETIMEDOUT; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: - break; - } + if ( lock_status == POSIX_ABSOLUTE_TIMEOUT_INVALID ) + return EINVAL; + if ( lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST || + lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW ) + return ETIMEDOUT; } return lock_status; diff --git a/cpukit/posix/src/prwlocktimedrdlock.c b/cpukit/posix/src/prwlocktimedrdlock.c index 547fa533e5..d6df7815a8 100644 --- a/cpukit/posix/src/prwlocktimedrdlock.c +++ b/cpukit/posix/src/prwlocktimedrdlock.c @@ -82,15 +82,11 @@ int pthread_rwlock_timedrdlock( _Thread_Enable_dispatch(); if ( !do_wait ) { if ( _Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE ) { - switch (status) { - case POSIX_ABSOLUTE_TIMEOUT_INVALID: - return EINVAL; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST: - case POSIX_ABSOLUTE_TIMEOUT_IS_NOW: - return ETIMEDOUT; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: - break; - } + if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID ) + return EINVAL; + if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST || + status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW ) + return ETIMEDOUT; } } diff --git a/cpukit/posix/src/prwlocktimedwrlock.c b/cpukit/posix/src/prwlocktimedwrlock.c index 1571e86f86..d34ee69489 100644 --- a/cpukit/posix/src/prwlocktimedwrlock.c +++ b/cpukit/posix/src/prwlocktimedwrlock.c @@ -82,15 +82,11 @@ int pthread_rwlock_timedwrlock( _Thread_Enable_dispatch(); if ( !do_wait && (_Thread_Executing->Wait.return_code == CORE_RWLOCK_UNAVAILABLE) ) { - switch (status) { - case POSIX_ABSOLUTE_TIMEOUT_INVALID: - return EINVAL; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST: - case POSIX_ABSOLUTE_TIMEOUT_IS_NOW: - return ETIMEDOUT; - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: - break; - } + if ( status == POSIX_ABSOLUTE_TIMEOUT_INVALID ) + return EINVAL; + if ( status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST || + status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW ) + return ETIMEDOUT; } return _POSIX_RWLock_Translate_core_RWLock_return_code( diff --git a/cpukit/posix/src/semtimedwait.c b/cpukit/posix/src/semtimedwait.c index 8d7a8fd5e5..60faafc242 100644 --- a/cpukit/posix/src/semtimedwait.c +++ b/cpukit/posix/src/semtimedwait.c @@ -70,15 +70,11 @@ int sem_timedwait( * make sure the right reason is returned. */ if ( !do_wait && (lock_status == EBUSY) ) { - switch (lock_status) { - case POSIX_ABSOLUTE_TIMEOUT_INVALID: - rtems_set_errno_and_return_minus_one( EINVAL ); - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST: - case POSIX_ABSOLUTE_TIMEOUT_IS_NOW: - rtems_set_errno_and_return_minus_one( ETIMEDOUT ); - case POSIX_ABSOLUTE_TIMEOUT_IS_IN_FUTURE: - break; - } + if ( lock_status == POSIX_ABSOLUTE_TIMEOUT_INVALID ) + rtems_set_errno_and_return_minus_one( EINVAL ); + if ( lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_IN_PAST || + lock_status == POSIX_ABSOLUTE_TIMEOUT_IS_NOW ) + rtems_set_errno_and_return_minus_one( ETIMEDOUT ); } return lock_status;