summaryrefslogtreecommitdiff
path: root/cxxabi.h
diff options
context:
space:
mode:
Diffstat (limited to 'cxxabi.h')
-rw-r--r--cxxabi.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/cxxabi.h b/cxxabi.h
index e021f85c905a..2bf7f99b5245 100644
--- a/cxxabi.h
+++ b/cxxabi.h
@@ -41,8 +41,15 @@ namespace std
*/
#ifdef __cplusplus
+#if __cplusplus < 201103L
+#define _LIBCXXRT_NOEXCEPT throw()
+#else
+#define _LIBCXXRT_NOEXCEPT noexcept
+#endif
namespace __cxxabiv1 {
extern "C" {
+#else
+#define _LIBCXXRT_NOEXCEPT
#endif
/**
* Function type to call when an unexpected exception is encountered.
@@ -76,7 +83,7 @@ typedef void (*terminate_handler)();
*/
struct __cxa_exception
{
-#if __LP64__
+#ifdef __LP64__
/**
* Now _Unwind_Exception is marked with __attribute__((aligned)), which
* implies __cxa_exception is also aligned. Insert padding in the
@@ -154,7 +161,7 @@ struct __cxa_exception
* need to adjust the thrown pointer to make it all work correctly.
*/
void *adjustedPtr;
-#if !__LP64__
+#ifndef __LP64__
/**
* Reference count. Used to support the C++11 exception_ptr class. This
* is prepended to the structure in 64-bit mode and squeezed in to the
@@ -204,12 +211,12 @@ __cxa_eh_globals *__cxa_get_globals_fast(void);
std::type_info * __cxa_current_exception_type();
-void *__cxa_allocate_exception(size_t thrown_size);
+void *__cxa_allocate_exception(size_t thrown_size) _LIBCXXRT_NOEXCEPT;
-void __cxa_free_exception(void* thrown_exception);
+void __cxa_free_exception(void* thrown_exception) _LIBCXXRT_NOEXCEPT;
__cxa_exception *__cxa_init_primary_exception(
- void *object, std::type_info* tinfo, void (*dest)(void *));
+ void *object, std::type_info* tinfo, void (*dest)(void *)) _LIBCXXRT_NOEXCEPT;
/**
* Throws an exception returned by __cxa_current_primary_exception(). This