https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113659
Bug ID: 113659 Summary: [14 Regression] ICE Segmentation fault since r14-8355-g02e683894942da Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: mjires at suse dot cz CC: rguenther at suse dot de Target Milestone: --- Compiling reduced testcase g++.dg/torture/predcom-1.C results in ICE since r14-8355-g02e683894942da. Reintroduced PR113442. $ cat predcom-1.C struct Foo { int *ptr; }; bool Baz(Foo first) { while (first.ptr) if (*first.ptr++) return false; } $ g++ predcom-1.C -O3 -fno-tree-sra -mavx512bf16 predcom-1.C: In function ‘bool Baz(Foo)’: predcom-1.C:8:1: warning: control reaches end of non-void function [-Wreturn-type] 8 | } | ^ during GIMPLE pass: vect predcom-1.C:4:6: internal compiler error: Segmentation fault 4 | bool Baz(Foo first) { | ^~~ 0x1b06530 crash_signal /home/mjires/git/GCC/master/gcc/toplev.cc:317 0x13c5e6a gimple_phi_result(gphi const*) /home/mjires/git/GCC/master/gcc/gimple.h:4608 0x1e6a0a4 slpeel_tree_duplicate_loop_to_edge_cfg(loop*, edge_def*, loop*, edge_def*, edge_def*, edge_def**, bool, vec<basic_block_def*, va_heap, vl_ptr>*) /home/mjires/git/GCC/master/gcc/tree-vect-loop-manip.cc:1713 0x1e6f49e vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool, tree_node**) /home/mjires/git/GCC/master/gcc/tree-vect-loop-manip.cc:3395 0x1e597a8 vect_transform_loop(_loop_vec_info*, gimple*) /home/mjires/git/GCC/master/gcc/tree-vect-loop.cc:11914 0x1eb23de vect_transform_loops /home/mjires/git/GCC/master/gcc/tree-vectorizer.cc:1006 0x1eb2b3e try_vectorize_loop_1 /home/mjires/git/GCC/master/gcc/tree-vectorizer.cc:1152 0x1eb2c77 try_vectorize_loop /home/mjires/git/GCC/master/gcc/tree-vectorizer.cc:1182 0x1eb2f3e execute /home/mjires/git/GCC/master/gcc/tree-vectorizer.cc:1298 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. $ g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/home/mjires/built/master/libexec/gcc/x86_64-pc-linux-gnu/14.0.1/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 --enable-languages=c,c++,fortran,lto --disable-multilib --disable-libsanitizer --enable-checking Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.0.1 20240129 (experimental) (GCC)