1
/* stdc.h -- macros to make source compile on both ANSI C and K&R C
4
/* Copyright (C) 1993 Free Software Foundation, Inc.
6
This file is part of GNU Bash, the Bourne Again SHell.
8
Bash is free software: you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation, either version 3 of the License, or
11
(at your option) any later version.
13
Bash is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with Bash. If not, see <http://www.gnu.org/licenses/>.
22
#if !defined (_STDC_H_)
25
/* Adapted from BSD /usr/include/sys/cdefs.h. */
27
/* A function can be defined using prototypes and compile on both ANSI C
28
and traditional C compilers with something like this:
29
extern char *func __P((char *, char *, int)); */
32
# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus) || defined (PROTOTYPES)
33
# define __P(protos) protos
35
# define __P(protos) ()
39
/* Fortify, at least, has trouble with this definition */
40
#if defined (HAVE_STRINGIZE)
41
# define CPP_STRING(x) #x
43
# define CPP_STRING(x) "x"
46
#if !defined (__STDC__)
48
#if defined (__GNUC__) /* gcc with -traditional */
49
# if !defined (signed)
50
# define signed __signed
52
# if !defined (volatile)
53
# define volatile __volatile
56
# if !defined (inline)
59
# if !defined (signed)
62
# if !defined (volatile)
65
#endif /* !__GNUC__ */
67
#endif /* !__STDC__ */
70
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8)
71
# define __attribute__(x)
75
/* For those situations when gcc handles inlining a particular function but
76
other compilers complain. */
78
# define INLINE inline
83
#if defined (PREFER_STDARG)
84
# define SH_VA_START(va, arg) va_start(va, arg)
86
# define SH_VA_START(va, arg) va_start(va)
89
#endif /* !_STDC_H_ */