https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121481
Bug ID: 121481
Summary: ICE in layout_type/stor-layout with array of svbool_t
on SVE-256 at O2
Product: gcc
Version: 15.1.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: sadiinso at icloud dot com
Target Milestone: ---
Hi,
The following code:
```
using b = __SVBool_t __attribute__((arm_sve_vector_bits(256)));
struct c {
b d[2];
};
struct h {
c e;
};
c f(auto) {}
void g(h i) {
c a = i.e;
f(a);
}
```
Causes the following ICE when using AARCH64 GCC 15:
```
<source>: In function 'c f(auto:1)':
<source>:11:12: warning: no return statement in function returning non-void
[-Wreturn-type]
11 | c f(auto) {}
| ^
during RTL pass: jump
<source>: In function 'void g(h)':
<source>:16:1: internal compiler error: in layout_type, at stor-layout.cc:2614
16 | }
| ^
```
when using the following compiler options :
```
-std=c++20 -O2 -march=armv9-A -msve-vector-bits=256
```
The ICE doesn't happen on O1 or O0 optimization level, or when setting the SVE
vector bit length to lower than 256.