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

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #3)
> 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.

Sure, or make it a langhook so c-common code can call the "correct"
mark_addresable (there's also c_common_mark_addressable_vec which might
suggest that splitting out common c_common_mark_addressable from
{c,cxx}_mark_addressable should be viable and use that).

> 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);
> }

Reply via email to