Use ANSI versions on AIX regardless of __STDC__.

This commit is contained in:
Jim Kingdon 1993-03-30 20:34:57 +00:00
parent 3f031adf9f
commit 01b4d31847
2 changed files with 43 additions and 13 deletions

View File

@ -1,3 +1,11 @@
Tue Mar 30 12:22:55 1993 Jim Kingdon (kingdon@cygnus.com)
* ansidecl.h: Use ANSI versions on AIX regardless of __STDC__.
Fri Mar 19 14:49:49 1993 Steve Chamberlain (sac@thepub.cygnus.com)
* dis-asm.h: Add h8500.
Thu Mar 18 13:49:09 1993 Per Bothner (bothner@rtl.cygnus.com)
* ieee-float.h: Moved from ../gdb.

View File

@ -1,5 +1,5 @@
/* ANSI and traditional C compatability macros
Copyright 1991 Free Software Foundation, Inc.
Copyright 1991, 1992 Free Software Foundation, Inc.
This file is part of the GNU C Library.
This program is free software; you can redistribute it and/or modify
@ -29,7 +29,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
SIGNED `signed' `'
PTRCONST `void *const' `char *'
DEFUN(name, arglist, args)
DEFUN (name, arglist, args)
Defines function NAME.
@ -41,19 +41,38 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
be separated with `AND'. For functions with a variable number of
arguments, the last thing listed should be `DOTS'.
DEFUN_VOID(name)
DEFUN_VOID (name)
Defines a function NAME, which takes no arguments.
EXFUN(name, prototype)
obsolete -- EXFUN (name, (prototype)) -- obsolete.
Is used in an external function declaration.
In ANSI C it is `NAMEPROTOTYPE' (so PROTOTYPE should be enclosed in
Replaced by PARAMS. Do not use; will disappear someday soon.
Was used in external function declarations.
In ANSI C it is `NAME PROTOTYPE' (so PROTOTYPE should be enclosed in
parentheses). In traditional C it is `NAME()'.
For a function that takes no arguments, PROTOTYPE should be `(NOARGS)'.
For a function that takes no arguments, PROTOTYPE should be `(void)'.
PARAMS ((args))
We could use the EXFUN macro to handle prototype declarations, but
the name is misleading and the result is ugly. So we just define a
simple macro to handle the parameter lists, as in:
static int foo PARAMS ((int, char));
This produces: `static int foo();' or `static int foo (int, char);'
EXFUN would have done it like this:
static int EXFUN (foo, (int, char));
but the function is not external...and it's hard to visually parse
the function name out of the mess. EXFUN should be considered
obsolete; new code should be written to use PARAMS.
For example:
extern int EXFUN(printf, (CONST char *format DOTS));
extern int printf PARAMS ((CONST char *format DOTS));
int DEFUN(fprintf, (stream, format),
FILE *stream AND CONST char *format DOTS) { ... }
void DEFUN_VOID(abort) { ... }
@ -69,7 +88,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
/* LINTLIBRARY */
#ifdef __STDC__
#if defined (__STDC__) || defined (_AIX)
/* the AIX xlc compiler implements all these things even when it is in
a mode which doesn't define __STDC__. */
#define PTR void *
#define PTRCONST void *CONST
@ -84,10 +105,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define EXFUN(name, proto) name proto
#define DEFUN(name, arglist, args) name(args)
#define DEFUN_VOID(name) name(NOARGS)
#define DEFUN_VOID(name) name(void)
#define PROTO(type, name, arglist) type name arglist
#endif
#define PROTO(type, name, arglist) type name arglist
#define PARAMS(paramlist) paramlist
#else /* Not ANSI C. */
@ -106,7 +127,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#define DEFUN(name, arglist, args) name arglist args;
#define DEFUN_VOID(name) name()
#define PROTO(type, name, arglist) type name ()
#define PARAMS(paramlist) ()
#endif /* ANSI C. */
#endif /* ansidecl.h */