From 8414c5a5176832964a5c9789344cf39714846841 Mon Sep 17 00:00:00 2001 From: Dan Albert Date: Thu, 5 Feb 2015 23:55:15 +0000 Subject: [libcxxabi] Fix -Werror build for 32-bit non-ARM. Summary: The inclusion of Unwind-EHABI.h was insufficiently guarded (LIBCXXABI_ARM_EHABI was beign checked without ever being defined). Move the check into the header file itself, add the check to the source file, and clean up the existing checks. LIBCXXABI_ARM_EHABI didn't have a canonical defintion; it was duplicated across cxxabi.h, libunwind.h, and unwind.h. Move the definition into __cxxabi_config.h and clean up the old cruft (note: we will have to ship this header). There are also a few drive-by formatting/whitespace cleanups. Reviewers: jroelofs, thakis, compnerd Reviewed By: compnerd Subscribers: compnerd, aemerson, cfe-commits Differential Revision: http://reviews.llvm.org/D7419 git-svn-id: https://llvm.org/svn/llvm-project/libcxxabi/trunk@228363 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/__cxxabi_config.h | 20 ++++++++++++++++++++ include/cxxabi.h | 10 ++-------- include/libunwind.h | 8 +------- include/unwind.h | 10 +--------- 4 files changed, 24 insertions(+), 24 deletions(-) create mode 100644 include/__cxxabi_config.h (limited to 'include') diff --git a/include/__cxxabi_config.h b/include/__cxxabi_config.h new file mode 100644 index 0000000..c040a06 --- /dev/null +++ b/include/__cxxabi_config.h @@ -0,0 +1,20 @@ +//===-------------------------- __cxxabi_config.h -------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef ____CXXABI_CONFIG_H +#define ____CXXABI_CONFIG_H + +#if defined(__arm__) && !defined(__USING_SJLJ_EXCEPTIONS__) && \ + !defined(__ARM_DWARF_EH__) +#define LIBCXXABI_ARM_EHABI 1 +#else +#define LIBCXXABI_ARM_EHABI 0 +#endif + +#endif // ____CXXABI_CONFIG_H diff --git a/include/cxxabi.h b/include/cxxabi.h index ae75f86..767acfe 100644 --- a/include/cxxabi.h +++ b/include/cxxabi.h @@ -18,17 +18,11 @@ #include #include +#include <__cxxabi_config.h> + #define _LIBCPPABI_VERSION 1001 #define LIBCXXABI_NORETURN __attribute__((noreturn)) -// FIXME: This is also in unwind.h and libunwind.h, can we consolidate? -#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \ - !defined(__ARM_DWARF_EH__) && !defined(__APPLE__) -#define LIBCXXABI_ARM_EHABI 1 -#else -#define LIBCXXABI_ARM_EHABI 0 -#endif - #ifdef __cplusplus namespace std { diff --git a/include/libunwind.h b/include/libunwind.h index 9c69551..b0f6979 100644 --- a/include/libunwind.h +++ b/include/libunwind.h @@ -17,13 +17,7 @@ #include #include -// FIXME: This is also in unwind.h and cxxabi.h, can we consolidate? -#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \ - !defined(__ARM_DWARF_EH__) && !defined(__APPLE__) -#define LIBCXXABI_ARM_EHABI 1 -#else -#define LIBCXXABI_ARM_EHABI 0 -#endif +#include <__cxxabi_config.h> #ifdef __APPLE__ #include diff --git a/include/unwind.h b/include/unwind.h index 6a265cc..3d889cf 100644 --- a/include/unwind.h +++ b/include/unwind.h @@ -23,13 +23,7 @@ #define LIBUNWIND_UNAVAIL #endif -// FIXME: This is also in cxxabi.h and libunwind.h, can we consolidate? -#if !defined(__USING_SJLJ_EXCEPTIONS__) && defined(__arm__) && \ - !defined(__ARM_DWARF_EH__) && !defined(__APPLE__) -#define LIBCXXABI_ARM_EHABI 1 -#else -#define LIBCXXABI_ARM_EHABI 0 -#endif +#include <__cxxabi_config.h> typedef enum { _URC_NO_REASON = 0, @@ -208,9 +202,7 @@ extern _Unwind_VRS_Result _Unwind_VRS_Pop(_Unwind_Context *context, _Unwind_VRS_RegClass regclass, uint32_t discriminator, _Unwind_VRS_DataRepresentation representation); -#endif -#if LIBCXXABI_ARM_EHABI static inline uintptr_t _Unwind_GetGR(struct _Unwind_Context* context, int index) { uintptr_t value = 0; -- cgit v1.2.3