Small tweaks to <stdarg.h>.

*Use a typedef rather than a macro definition for va_list. (The C standards specify that va_list is a type, although this would make a practical difference only if someone #undef'd it.)

*Don't include a semicolon in va_start(), so it expands to an expression rather than a statement. This could make a difference in a construct like "if (...) va_start(...); else ...".
This commit is contained in:
Stephen Heumann 2018-08-28 18:58:27 -05:00
parent 0b8d4ce3e4
commit 463da80902

View File

@ -24,9 +24,9 @@
typedef char *__va_list[2];
#endif
#define va_list __va_list
typedef __va_list va_list;
#define va_end(a) __va_end(a)
#define va_start(ap,LastFixedParm) ((void) ((ap)[0] = (ap)[1] = (char *) (&LastFixedParm + 1)));
#define va_start(ap,LastFixedParm) ((void) ((ap)[0] = (ap)[1] = (char *) (&LastFixedParm + 1)))
#define va_arg(ap,type) ((type *)((ap)[0] += sizeof(type)))[-1]
void __va_end(va_list);