diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2013-10-17 03:57:41 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2013-10-17 03:57:41 +0000 |
| commit | 55410fff8e40daf9d08439b2eb8fd14c0e4f46fb (patch) | |
| tree | 14ff42f01e02c305c9d808b9fa569b070bc712a8 | |
| parent | b4d179cc4f15ba0220caf459e9a92017e45bd63d (diff) | |
| download | bcm5719-llvm-55410fff8e40daf9d08439b2eb8fd14c0e4f46fb.tar.gz bcm5719-llvm-55410fff8e40daf9d08439b2eb8fd14c0e4f46fb.zip | |
unwinder: conditionalise availability
__attribute__ (( unavailable )) is for Apple specific builds. Create a macro
to conditionalise the usage of the macro. This is to aid in porting the
unwinder to other platforms.
llvm-svn: 192868
| -rw-r--r-- | libcxxabi/include/unwind.h | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/libcxxabi/include/unwind.h b/libcxxabi/include/unwind.h index bd791da92b8..4372dcadf80 100644 --- a/libcxxabi/include/unwind.h +++ b/libcxxabi/include/unwind.h @@ -17,6 +17,12 @@ #include <stdint.h> #include <stddef.h> +#if defined(__APPLE__) +#define LIBUNWIND_AVAIL __attribute__ (( unavailable )) +#else +#define LIBUNWIND_AVAIL +#endif + typedef enum { _URC_NO_REASON = 0, _URC_FOREIGN_EXCEPTION_CAUGHT = 1, @@ -181,28 +187,28 @@ extern void *_Unwind_FindEnclosingFunction(void *pc); // Mac OS X does not support text-rel and data-rel addressing so these functions // are unimplemented extern uintptr_t _Unwind_GetDataRelBase(struct _Unwind_Context *context) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern uintptr_t _Unwind_GetTextRelBase(struct _Unwind_Context *context) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; // Mac OS X 10.4 and 10.5 had implementations of these functions in // libgcc_s.dylib, but they never worked. /// These functions are no longer available on Mac OS X. extern void __register_frame_info_bases(const void *fde, void *ob, void *tb, - void *db) __attribute__((unavailable)); + void *db) LIBUNWIND_AVAIL; extern void __register_frame_info(const void *fde, void *ob) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern void __register_frame_info_table_bases(const void *fde, void *ob, void *tb, void *db) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern void __register_frame_info_table(const void *fde, void *ob) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern void __register_frame_table(const void *fde) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern void *__deregister_frame_info(const void *fde) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; extern void *__deregister_frame_info_bases(const void *fde) - __attribute__((unavailable)); + LIBUNWIND_AVAIL; #ifdef __cplusplus } |

