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.

Reply via email to