1// -*- C++ -*-
2//===--------------------------- stddef.h ---------------------------------===//
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#if defined(__need_ptrdiff_t) || defined(__need_size_t) || \
11    defined(__need_wchar_t) || defined(__need_NULL) || defined(__need_wint_t)
12
13#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
14#pragma GCC system_header
15#endif
16
17#include_next <stddef.h>
18
19#elif !defined(_LIBCPP_STDDEF_H)
20#define _LIBCPP_STDDEF_H
21
22/*
23    stddef.h synopsis
24
25Macros:
26
27    offsetof(type,member-designator)
28    NULL
29
30Types:
31
32    ptrdiff_t
33    size_t
34    max_align_t // C++11
35    nullptr_t
36
37*/
38
39#include <__config>
40
41#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
42#pragma GCC system_header
43#endif
44
45#include_next <stddef.h>
46
47#ifdef __cplusplus
48
49extern "C++" {
50#include <__nullptr>
51using std::nullptr_t;
52}
53
54#endif
55
56#endif // _LIBCPP_STDDEF_H
57