https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99324
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Wouldn't it be better to remove the mark_addressable call from build_va_arg and call {c,cxx}_mark_addressable in the callers instead. That way we'd also e.g. diagnose invalid (on i686-linux): register __builtin_va_list ap __asm ("%ebx"); void foo (int a, ...) { __builtin_va_arg (ap, int); }