https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70955

--- Comment #6 from zenith432 at users dot sourceforge.net ---
(In reply to H.J. Lu from comment #5)
> This may be related to PR 50818.

PR 50818 has morphed into a feature request that the canonical
__builtin_va_{list,start,end,copy} builtins behave according to the ABI of the
function they're in.  Today they behave according to the '-mabi=' setting on
the command line.

This is bug report that the specialized __builtin_ms_va_{list,start,end,copy}
builtins have stopped working when -flto is used.  They worked until gcc 5.3,
both with or without -flto.  In gcc 6.1 with -flto, the canonical iterator
__builtin_va_arg ignores them and works on a sysv_va_list.  To be precise, it's
__builtin_va_arg in the context of -flto that's broken, not the specialized
builtins.  __builtin_va_arg has always been a polymorphic builtin that changes
its behavior based on the type of va_list it's given as an argument.  Without
this polymorphic behavior, there's no way to iterate over an ms_va_list.

Reply via email to