https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126180
Bug ID: 126180
Summary: [14/15/16/17 Regression] ICE in output_constant, at
varasm.cc:5258 since r14-1498
Product: gcc
Version: 17.0
Status: UNCONFIRMED
Keywords: ice-on-valid-code
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: mjires at gcc dot gnu.org
CC: jason at redhat dot com
Target Milestone: ---
Target: x86_64-pc-linux-gnu
Compiling reduced testcase
gcc.target/x86_64/abi/avx512fp16/m512h/test_passing_structs.c results in ICE
since r14-1498-ge7cc4d703bceb9.
$ cat test_passing_structs.c
typedef float __m512 __attribute__ ((__vector_size__ (64), __may_alias__));
struct m512_struct {
__m512 x1;
};
struct m512_struct out;
void do_test() {
struct m512_struct v = {
0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0.1,
};
out = v;
}
$ gcc test_passing_structs.c -Oz -frounding-math
during RTL pass: final
test_passing_structs.c: In function ‘do_test’:
test_passing_structs.c:13:1: internal compiler error: in output_constant, at
varasm.cc:5552
13 | }
| ^
0x277e9b5 internal_error(char const*, ...)
/home/mjires/git/GCC/master/gcc/diagnostic-global-context.cc:787
0x2789ea3 fancy_abort(char const*, int, char const*)
/home/mjires/git/GCC/master/gcc/diagnostics/context.cc:1813
0x151b027 output_constant
/home/mjires/git/GCC/master/gcc/varasm.cc:5552
0x151c581 output_constructor_regular_field
/home/mjires/git/GCC/master/gcc/varasm.cc:5910
0x151c581 output_constructor
/home/mjires/git/GCC/master/gcc/varasm.cc:6176
0x151b93d output_constant
/home/mjires/git/GCC/master/gcc/varasm.cc:5631
0x151c581 output_constructor_regular_field
/home/mjires/git/GCC/master/gcc/varasm.cc:5910
0x151c581 output_constructor
/home/mjires/git/GCC/master/gcc/varasm.cc:6176
0x151bce8 output_constant
/home/mjires/git/GCC/master/gcc/varasm.cc:5667
0x151bd85 assemble_constant_contents
/home/mjires/git/GCC/master/gcc/varasm.cc:3911
0x1522705 output_constant_def_contents
/home/mjires/git/GCC/master/gcc/varasm.cc:3956
0x15227e7 mark_constants_in_pattern
/home/mjires/git/GCC/master/gcc/varasm.cc:4520
0x1528f04 mark_constants
/home/mjires/git/GCC/master/gcc/varasm.cc:4552
0x1528f04 mark_constant_pool
/home/mjires/git/GCC/master/gcc/varasm.cc:4568
0x1528f04 output_constant_pool
/home/mjires/git/GCC/master/gcc/varasm.cc:4785
0x1528f04 assemble_start_function(tree_node*, char const*)
/home/mjires/git/GCC/master/gcc/varasm.cc:2101
0xba28ba rest_of_handle_final
/home/mjires/git/GCC/master/gcc/final.cc:4268
0xba28ba execute
/home/mjires/git/GCC/master/gcc/final.cc:4350
/home/mjires/built/master/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/cc1 -quiet
test_passing_structs.c -quiet -dumpdir a- -dumpbase test_passing_structs.c
-dumpbase-ext .c -mtune=generic -march=x86-64 -Oz -frounding-math -o
/tmp/ccPzQho4.s
Please submit a full bug report, with preprocessed source (by using
-freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/home/mjires/built/master/libexec/gcc/x86_64-pc-linux-gnu/17.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /home/mjires/git/GCC/master/configure
--prefix=/home/mjires/built/master --disable-bootstrap
--enable-languages=c,c++,fortran,lto --disable-multilib --disable-libsanitizer
--enable-checking : (reconfigured) /home/mjires/git/GCC/master/configure
--prefix=/home/mjires/built/master --disable-bootstrap --disable-multilib
--disable-libsanitizer --enable-checking --enable-languages=c,c++,fortran,lto
--no-create --no-recursion
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 17.0.0 20260709 (experimental) (GCC)