summaryrefslogtreecommitdiff
path: root/src/cxa_guard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/cxa_guard.cpp')
-rw-r--r--src/cxa_guard.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/cxa_guard.cpp b/src/cxa_guard.cpp
index 041797c..72e868f 100644
--- a/src/cxa_guard.cpp
+++ b/src/cxa_guard.cpp
@@ -7,6 +7,8 @@
//
//===----------------------------------------------------------------------===//
+#include "__cxxabi_config.h"
+
#include "abort_message.h"
#include "config.h"
@@ -167,22 +169,22 @@ extern "C"
{
#if LIBCXXABI_HAS_NO_THREADS
-int __cxa_guard_acquire(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS int __cxa_guard_acquire(guard_type *guard_object) {
return !is_initialized(guard_object);
}
-void __cxa_guard_release(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS void __cxa_guard_release(guard_type *guard_object) {
*guard_object = 0;
set_initialized(guard_object);
}
-void __cxa_guard_abort(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS void __cxa_guard_abort(guard_type *guard_object) {
*guard_object = 0;
}
#else // !LIBCXXABI_HAS_NO_THREADS
-int __cxa_guard_acquire(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS int __cxa_guard_acquire(guard_type *guard_object) {
char* initialized = (char*)guard_object;
if (pthread_mutex_lock(&guard_mut))
abort_message("__cxa_guard_acquire failed to acquire mutex");
@@ -223,7 +225,7 @@ int __cxa_guard_acquire(guard_type *guard_object) {
return result;
}
-void __cxa_guard_release(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS void __cxa_guard_release(guard_type *guard_object) {
if (pthread_mutex_lock(&guard_mut))
abort_message("__cxa_guard_release failed to acquire mutex");
*guard_object = 0;
@@ -234,7 +236,7 @@ void __cxa_guard_release(guard_type *guard_object) {
abort_message("__cxa_guard_release failed to broadcast condition variable");
}
-void __cxa_guard_abort(guard_type *guard_object) {
+_LIBCXXABI_FUNC_VIS void __cxa_guard_abort(guard_type *guard_object) {
if (pthread_mutex_lock(&guard_mut))
abort_message("__cxa_guard_abort failed to acquire mutex");
*guard_object = 0;