[Bug c/48797] GCC does inline variadic function, crashing on i386, when non-GNU stdarg.h is used

pinskia at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Apr 28 02:42:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48797

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |INVALID
           Severity|major                       |normal

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2011-04-28 02:41:36 UTC ---
First off GCC is the one which provides stdarg.h if you are not using GCC's
stdarg.h then that is the real bug.

Also it is safe to inline variadic functions is the variadic arguments are not
used.  That is the GCC builtin va_start is not used.  If this libc uses macro
version of va_start/va_end/va_next it will invoke undefined behavior, this is
why GCC has builtin functions to do those rather than using macro versions.



More information about the Gcc-bugs mailing list