ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
stddef.h
Go to the documentation of this file.
1#ifdef __clang__
2
3/* clang's <stddef.h> is documented as re-includable: a caller defines a
4 * __need_* macro to pull in that one type, which is how <wchar.h> obtains
5 * wint_t. A one-shot guard around this file makes every include after the
6 * first a no-op and loses the requested type, so the guard covers only the
7 * non-clang fallback and these names are set only for a plain include. */
8#if !defined(__need_ptrdiff_t) && !defined(__need_size_t) && \
9 !defined(__need_wchar_t) && !defined(__need_NULL) && \
10 !defined(__need_STDDEF_H_misc) && !defined(__need_max_align_t) && \
11 !defined(__need_offsetof) && !defined(__need_wint_t)
12#define __need_ptrdiff_t /* ptrdiff_t */
13#define __need_size_t /* size_t */
14#define __need_wchar_t /* wchar_t */
15#define __need_NULL /* NULL */
16#define __need_STDDEF_H_misc /* offsetof() and max_align_t */
17#define __need_max_align_t /* llvm 21: max_align_t */
18#define __need_offsetof /* llvm 21: offestof() */
19#endif
20#include_next <stddef.h>
21
22#else
23#ifndef __ESBMC_HEADERS_STDDEF_H_
24#define __ESBMC_HEADERS_STDDEF_H_
25
26/* stddef.h is supposed to contain various compiler specific types and
27 * facilities: */
28
29#ifndef _PTRDIFF_T_DEFINED
30typedef long int ptrdiff_t;
31#define _PTRDIFF_T_DEFINED
32#endif
33
34#ifndef __cplusplus
35#ifndef _WCHAR_T_DEFINED
36typedef short wchar_t;
37#define _WCHAR_T_DEFINED
38#endif
39#endif
40
41// Appease mingw
42#ifdef __need_wint_t
43typedef short wint_t;
44#endif
45
46#ifndef _SIZE_T_DEFINED
47typedef unsigned int size_t;
48#define _SIZE_T_DEFINED
49#endif
50
51#undef NULL
52#if defined(__cplusplus)
53#define NULL 0
54#else
55#define NULL ((void *)0)
56#endif
57
58/* ESBMC's ANSI-C parser handles this natively */
59#define offsetof(type, member) __builtin_offsetof(type, member)
60
61#endif /* __ESBMC_HEADERS_STDDEF_H_ */
62
63#endif /* !defined(__clang__) */
long int ptrdiff_t
Definition stddef.h:30
unsigned int size_t
Definition stddef.h:47
short wchar_t
Definition stddef.h:36