mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-22 16:37:40 +08:00

Summary: Libcxx will define its own max_align_t when it is not available. However, the availability checks today only check for Clang's definition and GCC's definition. In particular, it does not check for musl's definition, which is the same as GCC's but guarded with a different macro. Reviewers: mclow.lists, EricWF Reviewed By: EricWF Subscribers: chandlerc, cfe-commits Differential Revision: https://reviews.llvm.org/D28478 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@294683 91177308-0d34-0410-b5e6-96231b3b80d8
64 lines
1.3 KiB
C++
64 lines
1.3 KiB
C++
// -*- C++ -*-
|
|
//===--------------------------- stddef.h ---------------------------------===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is dual licensed under the MIT and the University of Illinois Open
|
|
// Source Licenses. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#if defined(__need_ptrdiff_t) || defined(__need_size_t) || \
|
|
defined(__need_wchar_t) || defined(__need_NULL) || defined(__need_wint_t)
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#include_next <stddef.h>
|
|
|
|
#elif !defined(_LIBCPP_STDDEF_H)
|
|
#define _LIBCPP_STDDEF_H
|
|
|
|
/*
|
|
stddef.h synopsis
|
|
|
|
Macros:
|
|
|
|
offsetof(type,member-designator)
|
|
NULL
|
|
|
|
Types:
|
|
|
|
ptrdiff_t
|
|
size_t
|
|
max_align_t
|
|
nullptr_t
|
|
|
|
*/
|
|
|
|
#include <__config>
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#include_next <stddef.h>
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C++" {
|
|
#include <__nullptr>
|
|
using std::nullptr_t;
|
|
}
|
|
|
|
// Re-use the compiler's <stddef.h> max_align_t where possible.
|
|
#if !defined(__CLANG_MAX_ALIGN_T_DEFINED) && !defined(_GCC_MAX_ALIGN_T) && \
|
|
!defined(__DEFINED_max_align_t)
|
|
typedef long double max_align_t;
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif // _LIBCPP_STDDEF_H
|