Blame lib/stddef.in.h

Packit Service c3aa71
/* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues.
Packit Service c3aa71
Packit Service c3aa71
   Copyright (C) 2009-2015 Free Software Foundation, Inc.
Packit Service c3aa71
Packit Service c3aa71
   This program is free software; you can redistribute it and/or modify
Packit Service c3aa71
   it under the terms of the GNU General Public License as published by
Packit Service c3aa71
   the Free Software Foundation; either version 3, or (at your option)
Packit Service c3aa71
   any later version.
Packit Service c3aa71
Packit Service c3aa71
   This program is distributed in the hope that it will be useful,
Packit Service c3aa71
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service c3aa71
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service c3aa71
   GNU General Public License for more details.
Packit Service c3aa71
Packit Service c3aa71
   You should have received a copy of the GNU General Public License
Packit Service c3aa71
   along with this program; if not, see <http://www.gnu.org/licenses/>.  */
Packit Service c3aa71
Packit Service c3aa71
/* Written by Eric Blake.  */
Packit Service c3aa71
Packit Service c3aa71
/*
Packit Service c3aa71
 * POSIX 2008 <stddef.h> for platforms that have issues.
Packit Service c3aa71
 * <http://www.opengroup.org/susv3xbd/stddef.h.html>
Packit Service c3aa71
 */
Packit Service c3aa71
Packit Service c3aa71
#if __GNUC__ >= 3
Packit Service c3aa71
@PRAGMA_SYSTEM_HEADER@
Packit Service c3aa71
#endif
Packit Service c3aa71
@PRAGMA_COLUMNS@
Packit Service c3aa71
Packit Service c3aa71
#if defined __need_wchar_t || defined __need_size_t  \
Packit Service c3aa71
  || defined __need_ptrdiff_t || defined __need_NULL \
Packit Service c3aa71
  || defined __need_wint_t
Packit Service c3aa71
/* Special invocation convention inside gcc header files.  In
Packit Service c3aa71
   particular, gcc provides a version of <stddef.h> that blindly
Packit Service c3aa71
   redefines NULL even when __need_wint_t was defined, even though
Packit Service c3aa71
   wint_t is not normally provided by <stddef.h>.  Hence, we must
Packit Service c3aa71
   remember if special invocation has ever been used to obtain wint_t,
Packit Service c3aa71
   in which case we need to clean up NULL yet again.  */
Packit Service c3aa71
Packit Service c3aa71
# if !(defined _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
Packit Service c3aa71
#  ifdef __need_wint_t
Packit Service c3aa71
#   define _GL_STDDEF_WINT_T
Packit Service c3aa71
#  endif
Packit Service c3aa71
#  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
Packit Service c3aa71
# endif
Packit Service c3aa71
Packit Service c3aa71
#else
Packit Service c3aa71
/* Normal invocation convention.  */
Packit Service c3aa71
Packit Service c3aa71
# ifndef _@GUARD_PREFIX@_STDDEF_H
Packit Service c3aa71
Packit Service c3aa71
/* The include_next requires a split double-inclusion guard.  */
Packit Service c3aa71
Packit Service c3aa71
#  @INCLUDE_NEXT@ @NEXT_STDDEF_H@
Packit Service c3aa71
Packit Service c3aa71
/* On NetBSD 5.0, the definition of NULL lacks proper parentheses.  */
Packit Service c3aa71
#  if (@REPLACE_NULL@ \
Packit Service c3aa71
       && (!defined _@GUARD_PREFIX@_STDDEF_H || defined _GL_STDDEF_WINT_T))
Packit Service c3aa71
#   undef NULL
Packit Service c3aa71
#   ifdef __cplusplus
Packit Service c3aa71
   /* ISO C++ says that the macro NULL must expand to an integer constant
Packit Service c3aa71
      expression, hence '((void *) 0)' is not allowed in C++.  */
Packit Service c3aa71
#    if __GNUG__ >= 3
Packit Service c3aa71
    /* GNU C++ has a __null macro that behaves like an integer ('int' or
Packit Service c3aa71
       'long') but has the same size as a pointer.  Use that, to avoid
Packit Service c3aa71
       warnings.  */
Packit Service c3aa71
#     define NULL __null
Packit Service c3aa71
#    else
Packit Service c3aa71
#     define NULL 0L
Packit Service c3aa71
#    endif
Packit Service c3aa71
#   else
Packit Service c3aa71
#    define NULL ((void *) 0)
Packit Service c3aa71
#   endif
Packit Service c3aa71
#  endif
Packit Service c3aa71
Packit Service c3aa71
#  ifndef _@GUARD_PREFIX@_STDDEF_H
Packit Service c3aa71
#   define _@GUARD_PREFIX@_STDDEF_H
Packit Service c3aa71
Packit Service c3aa71
/* Some platforms lack wchar_t.  */
Packit Service c3aa71
#if !@HAVE_WCHAR_T@
Packit Service c3aa71
# define wchar_t int
Packit Service c3aa71
#endif
Packit Service c3aa71
Packit Service c3aa71
/* Some platforms lack max_align_t.  */
Packit Service c3aa71
#if !@HAVE_MAX_ALIGN_T@
Packit Service c3aa71
typedef union
Packit Service c3aa71
{
Packit Service c3aa71
  char *__p;
Packit Service c3aa71
  double __d;
Packit Service c3aa71
  long double __ld;
Packit Service c3aa71
  long int __i;
Packit Service c3aa71
} max_align_t;
Packit Service c3aa71
#endif
Packit Service c3aa71
Packit Service c3aa71
#  endif /* _@GUARD_PREFIX@_STDDEF_H */
Packit Service c3aa71
# endif /* _@GUARD_PREFIX@_STDDEF_H */
Packit Service c3aa71
#endif /* __need_XXX */