README.Portability (Function prototypes): Document new variable-argument function macros.

* README.Portability (Function prototypes): Document new
	variable-argument function macros.

From-SVN: r55150
This commit is contained in:
Matt Kraai 2002-07-01 20:09:52 +00:00 committed by Matt Kraai
parent 5fd3853ac3
commit d3fc4dbce0
2 changed files with 11 additions and 22 deletions

View File

@ -1,3 +1,8 @@
2002-07-01 Matt Kraai <kraai@alumni.cmu.edu>
* README.Portability (Function prototypes): Document new
variable-argument function macros.
Mon Jul 1 19:55:17 2002 J"orn Rennecke <joern.rennecke@superh.com>
* sh.c (langhooks.h): Include.

View File

@ -139,32 +139,16 @@ void cpp_ice PARAMS ((cpp_reader *, const char *msgid, ...));
void
cpp_ice VPARAMS ((cpp_reader *pfile, const char *msgid, ...))
{
#ifndef ANSI_PROTOTYPES
cpp_reader *pfile;
const char *msgid;
#endif
va_list ap;
VA_START (ap, msgid);
#ifndef ANSI_PROTOTYPES
pfile = va_arg (ap, cpp_reader *);
msgid = va_arg (ap, const char *);
#endif
{
VA_OPEN (ap, msgid);
VA_FIXEDARG (ap, cpp_reader *, pfile);
VA_FIXEDARG (ap, const char *, msgid);
...
va_end (ap);
VA_CLOSE (ap);
}
For the curious, here are the definitions of the above macros. See
ansidecl.h for the definitions of the above macros and more.
#define PARAMS(paramlist) paramlist /* ISO C. */
#define VPARAMS(args) args
#define PARAMS(paramlist) () /* K+R C. */
#define VPARAMS(args) (va_alist) va_dcl
See ansidecl.h for the definitions of the above macros and more.
One aspect of using K+R style function declarations, is you cannot
have arguments whose types are char, short, or float, since without