25 lines · cpp
1// -*- C++ -*-2//===----------------------------------------------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10// The Itanium ABI requires that _Unwind_Exception objects are "double-word11// aligned".12 13#include <unwind.h>14 15// EHABI : 8-byte aligned16// itanium: largest supported alignment for the system17#if defined(_LIBUNWIND_ARM_EHABI)18static_assert(alignof(_Unwind_Control_Block) == 8,19 "_Unwind_Control_Block must be double-word aligned");20#else21struct MaxAligned {} __attribute__((__aligned__));22static_assert(alignof(_Unwind_Exception) == alignof(MaxAligned),23 "_Unwind_Exception must be maximally aligned");24#endif25