forked from OSchip/llvm-project
[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 llvm-svn: 228363
This commit is contained in:
parent
8ab869010f
commit
f25c866ba6
|
@ -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
|
|
@ -18,17 +18,11 @@
|
|||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#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 {
|
||||
|
|
|
@ -17,13 +17,7 @@
|
|||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
// 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 <Availability.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;
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
|
||||
#include "Unwind-EHABI.h"
|
||||
|
||||
#include <unwind.h>
|
||||
#if LIBCXXABI_ARM_EHABI
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
@ -26,7 +26,6 @@
|
|||
#include "unwind.h"
|
||||
#include "../private_typeinfo.h"
|
||||
|
||||
#if LIBCXXABI_ARM_EHABI
|
||||
namespace {
|
||||
|
||||
// Strange order: take words in order, but inside word, take from most to least
|
||||
|
|
|
@ -11,6 +11,10 @@
|
|||
#ifndef __UNWIND_EHABI_H__
|
||||
#define __UNWIND_EHABI_H__
|
||||
|
||||
#include <__cxxabi_config.h>
|
||||
|
||||
#if LIBCXXABI_ARM_EHABI
|
||||
|
||||
#include <stdint.h>
|
||||
#include <unwind.h>
|
||||
|
||||
|
@ -44,6 +48,6 @@ extern _Unwind_Reason_Code __aeabi_unwind_cpp_pr2(
|
|||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#endif // LIBCXXABI_ARM_EHABI
|
||||
|
||||
#endif // __UNWIND_EHABI_H__
|
||||
|
|
|
@ -23,17 +23,15 @@
|
|||
#include <mach-o/dyld.h>
|
||||
#endif
|
||||
|
||||
#include "libunwind.h"
|
||||
|
||||
#include "AddressSpace.hpp"
|
||||
#include "Registers.hpp"
|
||||
#include "DwarfInstructions.hpp"
|
||||
#include "CompactUnwinder.hpp"
|
||||
#include "config.h"
|
||||
|
||||
#if LIBCXXABI_ARM_EHABI
|
||||
#include "AddressSpace.hpp"
|
||||
#include "CompactUnwinder.hpp"
|
||||
#include "config.h"
|
||||
#include "DwarfInstructions.hpp"
|
||||
#include "libunwind.h"
|
||||
#include "Registers.hpp"
|
||||
#include "Unwind-EHABI.h"
|
||||
#endif
|
||||
|
||||
namespace libunwind {
|
||||
|
||||
|
|
|
@ -16,14 +16,11 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "libunwind.h"
|
||||
#include "unwind.h"
|
||||
#include "libunwind_ext.h"
|
||||
#include "config.h"
|
||||
|
||||
#if LIBCXXABI_ARM_EHABI
|
||||
#include "libunwind_ext.h"
|
||||
#include "libunwind.h"
|
||||
#include "Unwind-EHABI.h"
|
||||
#endif
|
||||
#include "unwind.h"
|
||||
|
||||
#if _LIBUNWIND_BUILD_ZERO_COST_APIS
|
||||
|
||||
|
|
Loading…
Reference in New Issue