[Bug target/108411] New: [13 Regression] ICEs in aarch64_layout_arg
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jan 15 12:24:51 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108411
Bug ID: 108411
Summary: [13 Regression] ICEs in aarch64_layout_arg
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: jakub at gcc dot gnu.org
Target Milestone: ---
r13-5124-g6610daa1cfb75b72500c2
introduced some ICEs:
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_128.c -march=armv8.2-a+sve (internal
compiler error: in aarch64_layout_arg, at config/aarch64/aarch64.cc:7696)
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_128.c -march=armv8.2-a+sve (test for
excess errors)
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_256.c -march=armv8.2-a+sve (internal
compiler error: in aarch64_layout_arg, at config/aarch64/aarch64.cc:7696)
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_256.c -march=armv8.2-a+sve (test for
excess errors)
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_512.c -march=armv8.2-a+sve (internal
compiler error: in aarch64_layout_arg, at config/aarch64/aarch64.cc:7696)
+FAIL: gcc.target/aarch64/sve/pcs/struct_3_512.c -march=armv8.2-a+sve (test for
excess errors)
as well as (with -fstack-protector-all)
+FAIL: g++.target/aarch64/bitfield-abi-warning-align16-O2.C
scan-assembler-times and\\tw0, w1, 1 10
+FAIL: g++.target/aarch64/bitfield-abi-warning-align32-O2.C
scan-assembler-times and\\tw0, w1, 1 10
+FAIL: g++.target/aarch64/bitfield-abi-warning-align8-O2.C scan-assembler-times
and\\tw0, w0, 1 11
+FAIL: g++.target/aarch64/bitfield-abi-warning-align8-O2.C scan-assembler-times
and\\tw0, w1, 1 18
regressions.
For the latter (can be seen e.g. when configured --enable-default-ssp or when
testing with RUNTESTFLAGS=--target_board=unix/-fstack-protector-all) I think
just adding explicit -fno-stack-protector to the test would be enough.
The former can be reduced e.g. to
typedef __SVInt32_t fixed_int32_t __attribute__ ((arm_sve_vector_bits (128)));
struct A { fixed_int32_t a[3] __attribute__((aligned((128 / 8) * 2))); };
void foo (struct A x) {}
with -march=armv8.2-a+sve -O -msve-vector-bits=128
I wonder if just the assertion shouldn't be dropped, user alignment can be
arbitrarily large.
More information about the Gcc-bugs
mailing list