On Mon, Oct 5, 2026 at 6:29 PM Jonathan Yong <[email protected]> wrote:
>
> On 10/1/26 06:43, Uros Bizjak wrote:
> > On Thu, Oct 1, 2026 at 12:46 AM Oleg Tolmatcev <[email protected]> 
> > wrote:
> >>
> >> For an MS ABI va_list, ix86_gimplify_va_arg calls
> >> std_gimplify_va_arg_expr, which asks the pass_by_reference hook whether
> >> the argument was passed by reference.  Without cumulative args, the hook
> >> assumes the default ABI, SysV on Linux, so va_arg reads an argument
> >> passed by reference as if it were passed by value.
> >>
> >> Split the ABI-specific decision out of ix86_pass_by_reference.  For an
> >> indirect MS ABI argument, follow ia64_gimplify_va_arg: use the standard
> >> va_arg helper to read its pointer and then dereference it.  Use the
> >> explicit SysV ABI for a SysV va_list so the opposite target-default
> >> mismatch is handled as well.
> >>
> >> gcc/ChangeLog:
> >>
> >>          * config/i386/i386.cc (ix86_pass_by_reference_abi): New function,
> >>          split out of ...
> >>          (ix86_pass_by_reference): ... this.
> >>          (ix86_gimplify_va_arg): Derive argument indirection from the ABI 
> >> of
> >>          the va_list type.  Read indirect MS ABI arguments as pointers.
> >>
> >> gcc/testsuite/ChangeLog:
> >>
> >>          * gcc.target/i386/va-arg-abi-attribute.c: New test.
> >
> > OK.
> >
> > For future contributions, please state how you tested the patch, see
> > [1]. Also, if you don't have write access, please point out lack of
> > write access in your initial submission, as also advised in [1].
> >
> > [1] https://gcc.gnu.org/contribute.html#patches
> >
> > Thanks,
> > Uros.
> >
> Can these be pushed or are there any further review? I also don't see
> the v2 second patch anywhere.

Please go ahead and push this patch and [1] (approved v1 2/2).

[1] https://gcc.gnu.org/pipermail/gcc-patches/2026-September/733116.html

Thanks,
Uros.

Reply via email to