[Bug target/122539] CMSE wrongfully clearing non padded union members
cvs-commit at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Nov 18 17:11:48 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=122539
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-15 branch has been updated by Andre Simoes Dias Vieira
<avieira@gcc.gnu.org>:
https://gcc.gnu.org/g:24f252c917089486e1f0d6c0b98962091b6b21d2
commit r15-10529-g24f252c917089486e1f0d6c0b98962091b6b21d2
Author: Andre Vieira <andre.simoesdiasvieira@arm.com>
Date: Wed Nov 12 10:33:09 2025 +0000
arm: Fix out of bounds when using cmse with FP types in aggregates
[PR122539]
Skip partial register clearing logic when dealing with FP_REGS in
aggregates as
these are always fully cleared and the logic assumes a mask for each of the
4
argument GPR_REGS.
gcc/ChangeLog:
PR target/122539
* config/arm/arm.cc (comp_not_to_clear_mask_str_un): Skip partial
register clearing logic for FP_REGS.
(compute_not_to_clear_mask): Likewise.
gcc/testsuite/ChangeLog:
* gcc.target/arm/cmse/mainline/8m/hard/union-fp.c: New.
* gcc.target/arm/cmse/baseline/union-4.c: New.
* gcc.target/arm/cmse/mainline/8m/hard/union-4.c: New.
* gcc.target/arm/cmse/mainline/8m/soft/union-4.c: New.
* gcc.target/arm/cmse/mainline/8m/softfp/union-4.c: New.
* gcc.target/arm/cmse/union-4.x: New.
(cherry picked from commit 13b58ca5d1a56517932f80ce07bd947d7f4f917e)
More information about the Gcc-bugs
mailing list