From d3fc4dbce010ac15557fd5cac3bd3ce276a254fe Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Mon, 1 Jul 2002 20:09:52 +0000 Subject: [PATCH] README.Portability (Function prototypes): Document new variable-argument function macros. * README.Portability (Function prototypes): Document new variable-argument function macros. From-SVN: r55150 --- gcc/ChangeLog | 5 +++++ gcc/README.Portability | 28 ++++++---------------------- 2 files changed, 11 insertions(+), 22 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a4d02b4b8ae..85775c9d8eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-07-01 Matt Kraai + + * README.Portability (Function prototypes): Document new + variable-argument function macros. + Mon Jul 1 19:55:17 2002 J"orn Rennecke * sh.c (langhooks.h): Include. diff --git a/gcc/README.Portability b/gcc/README.Portability index d69c3869b3f..ccd05e7521d 100644 --- a/gcc/README.Portability +++ b/gcc/README.Portability @@ -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