mirror of
git://git.musl-libc.org/musl
synced 2024-12-26 08:32:26 +00:00
def0af1898
this slightly cuts down on the degree musl "fights with" gcc, but more importantly, it fixes a critical bug when gcc inlines a variadic function and optimizes out the variadic arguments due to noticing that they were "not used" (by __builtin_va_arg). we leave the old code in place if __GNUC__ >= 3 is false; it seems like it might be necessary at least for tinycc support and perhaps if anyone ever gets around to fixing gcc 2.95.3 enough to make it work..
26 lines
407 B
C
26 lines
407 B
C
#ifndef _STDARG_H
|
|
#define _STDARG_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define __NEED_va_list
|
|
|
|
#include <bits/alltypes.h>
|
|
|
|
#if __GNUC__ >= 3
|
|
#define va_start(v,l) __builtin_va_start(v,l)
|
|
#define va_end(v) __builtin_va_end(v)
|
|
#define va_arg(v,l) __builtin_va_arg(v,l)
|
|
#define va_copy(d,s) __builtin_va_copy(d,s)
|
|
#else
|
|
#include <bits/stdarg.h>
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|