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.

Reply via email to