https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97205
--- Comment #12 from Bernd Edlinger <bernd.edlinger at hotmail dot de> --- (In reply to Bernd Edlinger from comment #11) > (In reply to rguent...@suse.de from comment #10) > > > > I failed to track down where we'd expand this to a possibly > > unaligned mem - but is this just bogus MEM_ALIGN set? Can we instead > > fix that somehow? > > > > No, this fixes the assertion in the back-end, while the first hunk > makes the memory at least mode aligned, the MEM_ALIGN needs to > be adjusted here, GET_MODE_ALIGNMENT (GET_MODE (x)) is a lower > bound of the true alignment. > > Also in the case of the PARM_DECLs it is possible that we take > advantage from a MEM_ALIGN which happens to be larger than > what's implied by TYPE_ALIGN. > In case, I misunderstood the question. set_rtl does this, but it is also called from a lot of other places, for instance set_parm_rtl where I did not want to change the alignment.