On Mon, Jul 7, 2025 at 11:08 PM Jason Merrill <ja...@redhat.com> wrote:
>
> On 7/1/25 5:36 PM, H.J. Lu wrote:
> > On Tue, Jul 1, 2025 at 9:37 PM Jason Merrill <ja...@redhat.com> wrote:
> >>
> >> On 6/30/25 7:03 PM, H.J. Lu wrote:
> >>> On Mon, Jun 30, 2025 at 10:36 PM Jason Merrill <ja...@redhat.com> wrote:
> >>>>
> >>>> On 6/28/25 7:00 AM, H.J. Lu wrote:
> >>>>> Since a backend may ignore user type alignment for arguments passed on
> >>>>> stack, check backend for argument alignment on stack when evaluating
> >>>>> __alignof.
> >>>>
> >>>> I assume that's reflected in DECL_ALIGN, so could we just add PARM_DECL 
> >>>> to
> >>>
> >>> No.  targetm.calls.function_arg_boundary may have special handling for it.
> >>
> >> Why wouldn't we adjust DECL_ALIGN of the PARM_DECL to reflect the actual
> >> alignment of the argument?  Are you saying it could be different from
> >> one call to another?
> >
> > Function argument alignment is different from other places in memory if
> > the main variant type alignment is different:
>
> Yes, I understand that function parameter alignment can be different
> from other objects of that type.
>
> But since we have a PARM_DECL to represent that particular function
> parameter, it seems natural to represent that difference in the
> DECL_ALIGN of the PARM_DECL.  If you don't, its DECL_ALIGN is wrong.
>

__alignof returns TYPE_ALIGN, not DECL_ALIGN.  For PARM_DECL,
TYPE_ALIGN may not be the same as DECL_ALIGN.

-- 
H.J.

Reply via email to