blob: 6cce148f17aceadcabc478d5a36722e4e36cca7c [file] [log] [blame]
/*===---- __stddef_max_align_t.h - Definition of max_align_t for modules ---===
*
* Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
* See https://llvm.org/LICENSE.txt for license information.
* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
*
*===-----------------------------------------------------------------------===
*/
#ifndef __CLANG_MAX_ALIGN_T_DEFINED
#define __CLANG_MAX_ALIGN_T_DEFINED
#define _GCC_MAX_ALIGN_T /* Compat with GCC/FreeBSD headers */
#if defined(_MSC_VER)
typedef double max_align_t;
#elif defined(__APPLE__)
typedef long double max_align_t;
#else
// Define 'max_align_t' to match the GCC definition.
typedef struct {
long long __clang_max_align_nonce1
__attribute__((__aligned__(__alignof__(long long))));
long double __clang_max_align_nonce2
__attribute__((__aligned__(__alignof__(long double))));
#if defined(__CHERI_PURE_CAPABILITY__)
void *__clang_max_align_nonce3
__attribute__((__aligned__(__alignof__(void *))));
#endif
} max_align_t;
#endif
#endif