summaryrefslogtreecommitdiff
path: root/src/cxa_guard.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2015-12-04 02:14:58 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2015-12-04 02:14:58 +0000
commitb4ec5796f2d2d0c7bf3faeb87ce87281c185b28e (patch)
treea03ac48a7bc826682ba85d2832d1b844c10999e6 /src/cxa_guard.cpp
parent77a304b28be4b50a508298d6a0e40ee9d4bb3ccd (diff)
ibc++abi: mark visibility
Mark functions and types with the appropriate visibility. This is particularly useful for environments which explicitly indicate origin of functions (Windows). This aids in generating libc++abi as a DSO which exposes only the public interfaces. git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@254691 91177308-0d34-0410-b5e6-96231b3b80d8
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;