Commit c7fc688b authored by Renato Golin's avatar Renato Golin
Browse files

Merge r311574: ARM: explicitly specify the 8-byte alignment

Fixing the last libunwind failure on ARM.

llvm-svn: 316991
parent 42478613
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -100,7 +100,7 @@ struct _Unwind_Control_Block {
  } pr_cache;

  long long int :0; /* Enforce the 8-byte alignment */
};
} __attribute__((__aligned__(8)));

typedef _Unwind_Reason_Code (*_Unwind_Stop_Fn)
      (_Unwind_State state,
+10 −2
Original line number Diff line number Diff line
@@ -13,8 +13,16 @@

#include <unwind.h>

struct MaxAligned {} __attribute__((aligned));
static_assert(alignof(_Unwind_Exception) == alignof(MaxAligned), "");
// EHABI  : 8-byte aligned
// itanium: largest supported alignment for the system
#if defined(_LIBUNWIND_ARM_EHABI)
static_assert(alignof(_Unwind_Control_Block) == 8,
              "_Unwind_Control_Block must be double-word aligned");
#else
struct MaxAligned {} __attribute__((__aligned__));
static_assert(alignof(_Unwind_Exception) == alignof(MaxAligned),
              "_Unwind_Exception must be maximally aligned");
#endif

int main()
{