aboutsummaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/src/__support/threads/linux/rwlock.h3
-rw-r--r--libc/src/pthread/pthread_rwlock_timedrdlock.cpp2
-rw-r--r--libc/src/pthread/pthread_rwlock_timedwrlock.cpp2
-rw-r--r--libc/test/integration/src/pthread/CMakeLists.txt1
-rw-r--r--libc/test/integration/src/pthread/pthread_rwlock_test.cpp1
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"