https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113356
Bug ID: 113356 Summary: [14 Regression][aarch64] ICE in try_fuse_pair, at config/aarch64/aarch64-ldp-fusion.cc:2203 since r14-6947-g4b67ec7ff5b1aa Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: mjires at suse dot cz CC: acoplan at gcc dot gnu.org Target Milestone: --- Target: aarch64 Compiling reduced testcase g++.dg/ipa/pr71207.C fails the assert added in r14-6947-g4b67ec7ff5b1aa. $ cat pr71207.C struct Class1 { virtual ~Class1() {} unsigned Field1; }; struct Class4 : virtual Class1 {}; int main() { Class4 var1; } $ aarch64-linux-gnu-g++ pr71207.C -fnon-call-exceptions -mearly-ldp-fusion -fno-lifetime-dse -fno-forward-propagate -Os during RTL pass: ldp_fusion pr71207.C: In destructor ‘virtual Class4::~Class4()’: pr71207.C:5:8: internal compiler error: in try_fuse_pair, at config/aarch64/aarch64-ldp-fusion.cc:2265 5 | struct Class4 : virtual Class1 {}; | ^~~~~~ 0x2264a33 ldp_bb_info::try_fuse_pair(bool, unsigned int, rtl_ssa::insn_info*, rtl_ssa::insn_info*) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2265 0x2264eff ldp_bb_info::merge_pairs(std::__cxx11::list<rtl_ssa::insn_info*, std::allocator<rtl_ssa::insn_info*> >&, std::__cxx11::list<rtl_ssa::insn_info*, std::allocator<rtl_ssa::insn_info*> >&, bool, unsigned int) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2389 0x2265124 ldp_bb_info::transform_for_base(int, access_group&) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2422 0x226785e void ldp_bb_info::traverse_base_map<ordered_hash_map<pair_hash<nofree_ptr_hash<rtl_ssa::def_info>, int_hash<int, -1, -2> >, access_group, simple_hashmap_traits<default_hash_traits<pair_hash<nofree_ptr_hash<rtl_ssa::def_info>, int_hash<int, -1, -2> > >, access_group> > >(ordered_hash_map<pair_hash<nofree_ptr_hash<rtl_ssa::def_info>, int_hash<int, -1, -2> >, access_group, simple_hashmap_traits<default_hash_traits<pair_hash<nofree_ptr_hash<rtl_ssa::def_info>, int_hash<int, -1, -2> > >, access_group> >&) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2481 0x2265383 ldp_bb_info::transform() /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2489 0x22604ca ldp_fusion_bb(rtl_ssa::bb_info*) /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2717 0x2260554 ldp_fusion() /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2726 0x2260666 execute /home/mjires/git/GCC/master/gcc/config/aarch64/aarch64-ldp-fusion.cc:2776 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. $ aarch64-linux-gnu-g++ -v Using built-in specs. COLLECT_GCC=aarch64-linux-gnu-g++ COLLECT_LTO_WRAPPER=/home/mjires/built/master/libexec/gcc/aarch64-linux-gnu/14.0.1/lto-wrapper Target: aarch64-linux-gnu Configured with: /home/mjires/git/GCC/master/configure --prefix=/home/mjires/built/master --target=aarch64-linux-gnu --disable-bootstrap --enable-languages=c,c++,fortran --disable-multilib --disable-libsanitizer --enable-checking : (reconfigured) /home/mjires/git/GCC/master/configure --prefix=/home/mjires/built/master --target=aarch64-linux-gnu --disable-bootstrap --enable-languages=c,c++,fortran --disable-multilib --disable-libsanitizer --enable-checking Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 14.0.1 20240112 (experimental) (GCC)