Hi all, These two patches address PR123206. - Patch 1/2 is a minimally-invasive fix (suitable for backporting), which also includes a simple hardening step of making aarch64_pragma_builtins_data constexpr, to prevent this sort of bug from re-occurring. I'd like this to be considered for GCC 16. - Patch 2/2 is a more invasive hardening step (not suitable for backporting), whereby we make the ctor of bbitmap explicit. I think it provides a more comprehensive set of guardrails against this class of bug, but it's probably not suitable for GCC 16 at this stage. I'd still like to get some feedback on it, and hopefully land it next stage 1.
I'll note that since the bug isn't technically a regression, it isn't strictly stage 4 material, but I think the fix (1/2) is obvious enough, and it would be nice to have it in for GCC 16, so would like to get RM approval for that. Thanks, Alex Alex Coplan (2): aarch64: Fix gating of fp8 intrinsics [PR123206] middle-end, aarch64: Make bbitmap ctor explicit [PR123206] gcc/Makefile.in | 1 + gcc/bbitmap-selftests.cc | 69 +++++++++++++++++++ gcc/bbitmap.h | 8 +-- gcc/common/config/aarch64/aarch64-common.cc | 16 +++-- gcc/config/aarch64/aarch64-builtins.cc | 14 ++-- gcc/config/aarch64/aarch64-feature-deps.h | 7 +- gcc/config/aarch64/aarch64-protos.h | 10 +-- .../aarch64/aarch64-simd-pragma-builtins.def | 38 +++++----- .../aarch64/aarch64-sve-builtins-base.def | 4 +- .../aarch64/aarch64-sve-builtins-sme.def | 4 +- .../aarch64/aarch64-sve-builtins-sve2.def | 4 +- gcc/config/aarch64/aarch64-sve-builtins.cc | 8 +-- gcc/config/aarch64/aarch64-sve-builtins.h | 2 +- gcc/config/aarch64/aarch64.cc | 18 ++--- gcc/config/aarch64/aarch64.h | 4 +- gcc/config/aarch64/driver-aarch64.cc | 10 +-- gcc/selftest-run-tests.cc | 1 + gcc/selftest.h | 1 + gcc/testsuite/gcc.target/aarch64/pr123206.c | 7 ++ 19 files changed, 155 insertions(+), 71 deletions(-) create mode 100644 gcc/bbitmap-selftests.cc create mode 100644 gcc/testsuite/gcc.target/aarch64/pr123206.c
