Blame gnulib/lib/stddef.in.h

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