diff options
author | obrien <obrien@FreeBSD.org> | 2002-02-06 05:10:06 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-02-06 05:10:06 +0000 |
commit | be9fa5e36cdcc472994c9cd6688c335c47e2f972 (patch) | |
tree | 5d3c551bd3f711a5cc21186ed26e94f1808e8e52 /contrib/gcc/ginclude/stddef.h | |
parent | 3e10a6d863dab6d9b943252ef04420351b58d575 (diff) | |
download | FreeBSD-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.h | 64 |
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 |