summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/ginclude/stddef.h
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-02-06 05:10:06 +0000
committerobrien <obrien@FreeBSD.org>2002-02-06 05:10:06 +0000
commitbe9fa5e36cdcc472994c9cd6688c335c47e2f972 (patch)
tree5d3c551bd3f711a5cc21186ed26e94f1808e8e52 /contrib/gcc/ginclude/stddef.h
parent3e10a6d863dab6d9b943252ef04420351b58d575 (diff)
downloadFreeBSD-src-be9fa5e36cdcc472994c9cd6688c335c47e2f972.zip
FreeBSD-src-be9fa5e36cdcc472994c9cd6688c335c47e2f972.tar.gz
Use the stock [3.1-snap] version of this.
Diffstat (limited to 'contrib/gcc/ginclude/stddef.h')
-rw-r--r--contrib/gcc/ginclude/stddef.h64
1 files changed, 54 insertions, 10 deletions
diff --git a/contrib/gcc/ginclude/stddef.h b/contrib/gcc/ginclude/stddef.h
index 1109391..1f7fcb5 100644
--- a/contrib/gcc/ginclude/stddef.h
+++ b/contrib/gcc/ginclude/stddef.h
@@ -1,5 +1,34 @@
+/* Copyright (C) 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING. If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
+
+/* As a special exception, if you include this header file into source
+ files compiled by GCC, this header file does not by itself cause
+ the resulting executable to be covered by the GNU General Public
+ License. This exception does not however invalidate any other
+ reasons why the executable file might be covered by the GNU General
+ Public License. */
+
/* $FreeBSD$ */
+/*
+ * ISO C Standard: 7.17 Common definitions <stddef.h>
+ */
#if (!defined(_STDDEF_H) && !defined(_STDDEF_H_) && !defined(_ANSI_STDDEF_H) \
&& !defined(__STDDEF_H__)) \
|| defined(__need_wchar_t) || defined(__need_size_t) \
@@ -88,7 +117,7 @@ _TYPE_wchar_t;
#endif
/* In case nobody has defined these types, but we aren't running under
- GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE__TYPE__, and
+ GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE_TYPE__, and
__WCHAR_TYPE__ have reasonable values. This can happen if the
parts of GCC is compiled by an older compiler, that actually
include gstddef.h, such as collect2. */
@@ -138,6 +167,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
or if we want this type in particular. */
#if defined (_STDDEF_H) || defined (__need_size_t)
#ifndef __size_t__ /* BeOS */
+#ifndef __SIZE_T__ /* Cray Unicos/Mk */
#ifndef _SIZE_T /* in case <sys/types.h> has defined it. */
#ifndef _SYS_SIZE_T_H
#ifndef _T_SIZE_
@@ -152,6 +182,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
#ifndef _SIZET_
#ifndef __size_t
#define __size_t__ /* BeOS */
+#define __SIZE_T__ /* Cray Unicos/Mk */
#define _SIZE_T
#define _SYS_SIZE_T_H
#define _T_SIZE_
@@ -187,6 +218,7 @@ typedef long ssize_t;
#endif /* _T_SIZE_ */
#endif /* _SYS_SIZE_T_H */
#endif /* _SIZE_T */
+#endif /* __SIZE_T__ */
#endif /* __size_t__ */
#undef __need_size_t
#endif /* _STDDEF_H or __need_size_t. */
@@ -201,12 +233,14 @@ typedef long ssize_t;
or if we want this type in particular. */
#if defined (_STDDEF_H) || defined (__need_wchar_t)
#ifndef __wchar_t__ /* BeOS */
+#ifndef __WCHAR_T__ /* Cray Unicos/Mk */
#ifndef _WCHAR_T
#ifndef _T_WCHAR_
#ifndef _T_WCHAR
#ifndef __WCHAR_T
#ifndef _WCHAR_T_
#ifndef _BSD_WCHAR_T_
+#ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */
#ifndef _WCHAR_T_DEFINED_
#ifndef _WCHAR_T_DEFINED
#ifndef _WCHAR_T_H
@@ -214,6 +248,7 @@ typedef long ssize_t;
#ifndef __INT_WCHAR_T_H
#ifndef _GCC_WCHAR_T
#define __wchar_t__ /* BeOS */
+#define __WCHAR_T__ /* Cray Unicos/Mk */
#define _WCHAR_T
#define _T_WCHAR_
#define _T_WCHAR
@@ -242,17 +277,21 @@ typedef long ssize_t;
#ifdef _BSD_RUNE_T_
#if !defined (_ANSI_SOURCE) && !defined (_POSIX_SOURCE)
typedef _BSD_RUNE_T_ rune_t;
+#define _BSD_WCHAR_T_DEFINED_
+#if defined (__FreeBSD__)
+/* Why is this file so hard to maintain properly? In constrast to
+ the comment above regarding BSD/386 1.1, on FreeBSD for as long
+ as the symbol has existed, _BSD_RUNE_T_ must not stay defined or
+ redundant typedefs will occur when stdlib.h is included after this file. */
+#undef _BSD_RUNE_T_
+#endif
#endif
#endif
#endif
#ifndef __WCHAR_TYPE__
-#ifdef __BEOS__
-#define __WCHAR_TYPE__ unsigned char
-#else
#define __WCHAR_TYPE__ int
#endif
-#endif
#ifndef __cplusplus
typedef __WCHAR_TYPE__ wchar_t;
#endif
@@ -268,11 +307,13 @@ typedef __WCHAR_TYPE__ wchar_t;
#endif
#endif
#endif
+#endif
+#endif /* __WCHAR_T__ */
#endif /* __wchar_t__ */
#undef __need_wchar_t
#endif /* _STDDEF_H or __need_wchar_t. */
-#if defined (_STDDEF_H) || defined (__need_wint_t)
+#if defined (__need_wint_t)
#ifndef _WINT_T
#define _WINT_T
@@ -286,9 +327,8 @@ typedef __WINT_TYPE__ wint_t;
/* In 4.3bsd-net2, leave these undefined to indicate that size_t, etc.
are already defined. */
-/* BSD/OS 3.1 requires the MACHINE_ANSI_H check here. FreeBSD 2.x apparently
- does not, even though there is a check for MACHINE_ANSI_H above. */
-#if defined(_ANSI_H_) || (defined(__bsdi__) && defined(_MACHINE_ANSI_H_))
+/* BSD/OS 3.1 and FreeBSD [23].x require the MACHINE_ANSI_H check here. */
+#if defined(_ANSI_H_) || defined(_MACHINE_ANSI_H_)
/* The references to _GCC_PTRDIFF_T_, _GCC_SIZE_T_, and _GCC_WCHAR_T_
are probably typos and should be removed before 2.8 is released. */
#ifdef _GCC_PTRDIFF_T_
@@ -316,7 +356,7 @@ typedef __WINT_TYPE__ wint_t;
#undef _WCHAR_T_
#undef _BSD_WCHAR_T_
#endif
-#endif /* _ANSI_H_ || ( __bsdi__ && _MACHINE_ANSI_H_ ) */
+#endif /* _ANSI_H_ || _MACHINE_ANSI_H_ */
#endif /* __sys_stdtypes_h */
@@ -327,7 +367,11 @@ typedef __WINT_TYPE__ wint_t;
#ifdef __GNUG__
#define NULL __null
#else /* G++ */
+#ifndef __cplusplus
#define NULL ((void *)0)
+#else /* C++ */
+#define NULL 0
+#endif /* C++ */
#endif /* G++ */
#endif /* NULL not defined and <stddef.h> or need NULL. */
#undef __need_NULL
OpenPOWER on IntegriCloud