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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|UNCONFIRMED                 |RESOLVED

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
I think this is not valid C++ code at all. All compilers I tried reject either
va_start/va_end or the va_arg.
The only portable fix is to do:
void f(const char *fmt, ...)
{
        va_wrap va;
        va_start(static_cast<va_list&>(va), fmt); va.engaged = 1;
        va_arg(static_cast<va_list&>(va), int);
        if (0)
                va_copy(static_cast<va_list&>(va), static_cast<va_list&>(va));
        if (0)
                va_end(static_cast<va_list&>(va));
}

Reply via email to