diff options
Diffstat (limited to 'libc')
5 files changed, 6 insertions, 3 deletions
diff --git a/libc/src/__support/threads/linux/rwlock.h b/libc/src/__support/threads/linux/rwlock.h index 1778995..201fe92 100644 --- a/libc/src/__support/threads/linux/rwlock.h +++ b/libc/src/__support/threads/linux/rwlock.h @@ -63,7 +63,7 @@ public: WaitingQueue &queue; bool is_pshared; - LIBC_INLINE constexpr Guard(WaitingQueue &queue, bool is_pshared) + LIBC_INLINE Guard(WaitingQueue &queue, bool is_pshared) : queue(queue), is_pshared(is_pshared) { queue.lock(cpp::nullopt, is_pshared); } @@ -189,6 +189,7 @@ public: case Role::Writer: return !has_active_writer() && !has_pending_writer(); } + __builtin_unreachable(); } else return !has_acitve_owner(); } diff --git a/libc/src/pthread/pthread_rwlock_timedrdlock.cpp b/libc/src/pthread/pthread_rwlock_timedrdlock.cpp index d503d50..6ce69ea 100644 --- a/libc/src/pthread/pthread_rwlock_timedrdlock.cpp +++ b/libc/src/pthread/pthread_rwlock_timedrdlock.cpp @@ -42,8 +42,8 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_timedrdlock, return EINVAL; case internal::AbsTimeout::Error::BeforeEpoch: return ETIMEDOUT; - // default: unreachable, all two cases are covered. } + __builtin_unreachable(); } } // namespace LIBC_NAMESPACE diff --git a/libc/src/pthread/pthread_rwlock_timedwrlock.cpp b/libc/src/pthread/pthread_rwlock_timedwrlock.cpp index 5e67730..ad3f913 100644 --- a/libc/src/pthread/pthread_rwlock_timedwrlock.cpp +++ b/libc/src/pthread/pthread_rwlock_timedwrlock.cpp @@ -36,8 +36,8 @@ LLVM_LIBC_FUNCTION(int, pthread_rwlock_timedwrlock, return EINVAL; case internal::AbsTimeout::Error::BeforeEpoch: return ETIMEDOUT; - // default: unreachable, all two cases are covered. } + __builtin_unreachable(); } } // namespace LIBC_NAMESPACE diff --git a/libc/test/integration/src/pthread/CMakeLists.txt b/libc/test/integration/src/pthread/CMakeLists.txt index 16a1ff6..fa5fd3a 100644 --- a/libc/test/integration/src/pthread/CMakeLists.txt +++ b/libc/test/integration/src/pthread/CMakeLists.txt @@ -53,6 +53,7 @@ add_integration_test( libc.src.sys.wait.waitpid libc.src.stdlib.exit libc.src.__support.CPP.atomic + libc.src.__support.CPP.new libc.src.__support.threads.sleep ) diff --git a/libc/test/integration/src/pthread/pthread_rwlock_test.cpp b/libc/test/integration/src/pthread/pthread_rwlock_test.cpp index a2ae228..9175efe 100644 --- a/libc/test/integration/src/pthread/pthread_rwlock_test.cpp +++ b/libc/test/integration/src/pthread/pthread_rwlock_test.cpp @@ -7,6 +7,7 @@ //===----------------------------------------------------------------------===// #include "src/__support/CPP/atomic.h" +#include "src/__support/CPP/new.h" #include "src/__support/OSUtil/syscall.h" #include "src/__support/threads/linux/raw_mutex.h" #include "src/__support/threads/linux/rwlock.h" |