llvm-project

Форк
0
/
alignment.compile.pass.cpp 
24 строки · 922.0 Байт
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-exception
7
//
8
//===----------------------------------------------------------------------===//
9

10
// The Itanium ABI requires that _Unwind_Exception objects are "double-word
11
// aligned".
12

13
#include <unwind.h>
14

15
// EHABI  : 8-byte aligned
16
// itanium: largest supported alignment for the system
17
#if defined(_LIBUNWIND_ARM_EHABI)
18
static_assert(alignof(_Unwind_Control_Block) == 8,
19
              "_Unwind_Control_Block must be double-word aligned");
20
#else
21
struct MaxAligned {} __attribute__((__aligned__));
22
static_assert(alignof(_Unwind_Exception) == alignof(MaxAligned),
23
              "_Unwind_Exception must be maximally aligned");
24
#endif
25

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.