https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120839
H.J. Lu <hjl.tools at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[16 Regression] ICE on |[16 Regression] Incorrect |x86_64-linux-gnu: in |alignment for arguments on |ix86_finalize_stack_frame_f |stack |lags, at | |config/i386/i386.cc:8738 at | |-O1 and above with aligned | |on struct | --- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> --- set_mem_attrs has if (!MEM_ATTRS (mem) || !mem_attrs_eq_p (attrs, MEM_ATTRS (mem))) { MEM_ATTRS (mem) = ggc_alloc<mem_attrs> (); memcpy (MEM_ATTRS (mem), attrs, sizeof (mem_attrs)); } But a backend may ignore user type alignment for arguments passed on stack. As the result, arguments passed on stack may have wrong MEM_ALIGN.