On Tue, Jan 28, 2025 at 04:26:11PM +0100, Richard Biener wrote:
> The following fixes a not properly aligned stack temporary created
> during RTL expansion of a MEM_REF that we handle as a BIT_FIELD_REF
> whose base was allocated to a register but which was originally
> aligned to allow a larger load not trapping.  While probably UB
> in C the vectorizer creates aligned accesses that might overread
> a (static) allocation because it is then known not to trap.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu.
> 
> This came originally up in the context of PR117424 and would
> re-surface when the tree_could_trap_p fix would take into
> account alignment as well.
> 
> OK?
> 
> Thanks,
> Richard.
> 
>       PR middle-end/118684
>       * expr.cc (expand_expr_real_1): When expanding a reference
>       based on a register and we end up needing a MEM make sure
>       that's aligned as the original reference required.
> 
>       * gcc.dg/pr118684.c: New testcase.

LGTM.

        Jakub

Reply via email to