use compiler builtins for variadic macros when available
authorRich Felker <dalias@aerifal.cx>
Thu, 28 Apr 2011 03:41:48 +0000 (23:41 -0400)
committerRich Felker <dalias@aerifal.cx>
Thu, 28 Apr 2011 03:41:48 +0000 (23:41 -0400)
commitdef0af189871a499efdc9bc37438d8b20eb702ab
treed63aa5d2b91fd1dfc6098f41871eb582f4da5655
parente6bac87d0eaab116878a04874bc5b6a3496cb938
use compiler builtins for variadic macros when available

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..
arch/i386/bits/alltypes.h.sh
arch/x86_64/bits/stdarg.h
include/stdarg.h