163eb40eeSA. Jiang// -*- C++ -*- 263eb40eeSA. Jiang//===----------------------------------------------------------------------===// 363eb40eeSA. Jiang// 463eb40eeSA. Jiang// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 563eb40eeSA. Jiang// See https://llvm.org/LICENSE.txt for license information. 663eb40eeSA. Jiang// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 763eb40eeSA. Jiang// 863eb40eeSA. Jiang//===----------------------------------------------------------------------===// 963eb40eeSA. Jiang 1063eb40eeSA. Jiang#ifndef _LIBCPP_CSTDALIGN 1163eb40eeSA. Jiang#define _LIBCPP_CSTDALIGN 1263eb40eeSA. Jiang 1363eb40eeSA. Jiang/* 1463eb40eeSA. Jiang cstdalign synopsis 1563eb40eeSA. Jiang 1663eb40eeSA. JiangMacros: 1763eb40eeSA. Jiang 1863eb40eeSA. Jiang __alignas_is_defined 1963eb40eeSA. Jiang __alignof_is_defined 2063eb40eeSA. Jiang 2163eb40eeSA. Jiang*/ 2263eb40eeSA. Jiang 23b9a2658aSNikolas Klauser#if __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) 24b9a2658aSNikolas Klauser# include <__cxx03/__config> 25b9a2658aSNikolas Klauser#else 2663eb40eeSA. Jiang# include <__config> 2763eb40eeSA. Jiang 2863eb40eeSA. Jiang// <stdalign.h> is not provided by libc++ 2963eb40eeSA. Jiang# if __has_include(<stdalign.h>) 3063eb40eeSA. Jiang# include <stdalign.h> 3163eb40eeSA. Jiang# ifdef _LIBCPP_STDALIGN_H 3263eb40eeSA. Jiang# error "If libc++ starts defining <stdalign.h>, the __has_include check should move to libc++'s <stdalign.h>" 3363eb40eeSA. Jiang# endif 3463eb40eeSA. Jiang# endif 3563eb40eeSA. Jiang 3663eb40eeSA. Jiang# if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 3763eb40eeSA. Jiang# pragma GCC system_header 3863eb40eeSA. Jiang# endif 3963eb40eeSA. Jiang 4063eb40eeSA. Jiang# undef __alignas_is_defined 4163eb40eeSA. Jiang# define __alignas_is_defined 1 4263eb40eeSA. Jiang 4363eb40eeSA. Jiang# undef __alignof_is_defined 4463eb40eeSA. Jiang# define __alignof_is_defined 1 4563eb40eeSA. Jiang 4663eb40eeSA. Jiang# if _LIBCPP_STD_VER >= 20 4763eb40eeSA. Jiang 48*f6958523SNikolas Klauserusing __standard_header_cstdalign _LIBCPP_DEPRECATED_("removed in C++20.") _LIBCPP_NODEBUG = void; 49*f6958523SNikolas Klauserusing __use_standard_header_cstdalign _LIBCPP_NODEBUG = __standard_header_cstdalign; 5063eb40eeSA. Jiang 5163eb40eeSA. Jiang# elif _LIBCPP_STD_VER >= 17 5263eb40eeSA. Jiang 53*f6958523SNikolas Klauserusing __standard_header_cstdalign _LIBCPP_DEPRECATED _LIBCPP_NODEBUG = void; 54*f6958523SNikolas Klauserusing __use_standard_header_cstdalign _LIBCPP_NODEBUG = __standard_header_cstdalign; 5563eb40eeSA. Jiang 5663eb40eeSA. Jiang# endif 57b9a2658aSNikolas Klauser#endif // __cplusplus < 201103L && defined(_LIBCPP_USE_FROZEN_CXX03_HEADERS) 5863eb40eeSA. Jiang 5963eb40eeSA. Jiang#endif // _LIBCPP_CSTDALIGN 60