This series fixes the issue reported in PR 122539 by making sure we don't clear
registers in aggregates that have no padding.  This applies to FP_REGs too, as
these are never padded.

The second patch in the series deals with an out-of-boudns access issue when
dealing with FP_REGs that was discovered when testing the clearing of FP_REGs
in unions.


Andre Vieira (2):
  arm: Fix CMSE clearing of union members with no padding [PR122539]
  arm: Fix out of bounds when using cmse with FP types in aggregates [PR122539]

  Regression tested on arm-none-eabi. OK for trunk and backport to any open 
branches?

 gcc/config/arm/arm.cc                         | 63 +++++++++++-------
 .../gcc.target/arm/cmse/baseline/union-3.c    | 29 ++++++++
 .../gcc.target/arm/cmse/baseline/union-4.c    | 20 ++++++
 .../arm/cmse/mainline/8_1m/union-3.c          | 32 +++++++++
 .../arm/cmse/mainline/8m/hard/union-4.c       | 27 ++++++++
 .../arm/cmse/mainline/8m/hard/union-fp.c      | 66 +++++++++++++++++++
 .../arm/cmse/mainline/8m/soft/union-4.c       | 18 +++++
 .../arm/cmse/mainline/8m/softfp/union-4.c     | 19 ++++++
 .../gcc.target/arm/cmse/mainline/8m/union-3.c | 33 ++++++++++
 gcc/testsuite/gcc.target/arm/cmse/union-3.x   | 23 +++++++
 gcc/testsuite/gcc.target/arm/cmse/union-4.x   | 41 ++++++++++++
 11 files changed, 349 insertions(+), 22 deletions(-)
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/baseline/union-3.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/baseline/union-4.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8_1m/union-3.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-4.c
 create mode 100644 
gcc/testsuite/gcc.target/arm/cmse/mainline/8m/hard/union-fp.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/soft/union-4.c
 create mode 100644 
gcc/testsuite/gcc.target/arm/cmse/mainline/8m/softfp/union-4.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/mainline/8m/union-3.c
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/union-3.x
 create mode 100644 gcc/testsuite/gcc.target/arm/cmse/union-4.x

-- 
2.34.1

Reply via email to