compiling a source file in the EFL project makes gcc crash with an ICE <mock-chroot> sh-5.2# gcc -O2 -g -o ../src/lib/eo/eo_base_class.o -c ../src/lib/eo/eo_base_class.i during RTL pass: ldp_fusion ../src/lib/eo/eo_base_class.c: In function ‘_efl_object_destructor’: ../src/lib/eo/eo_base_class.c:2770:1: internal compiler error: in process_uses_of_deleted_def, at rtl-ssa/changes.cc:252 2770 | } | ^ Please submit a full bug report, with preprocessed source (by using -freport-bug). See <http://bugzilla.redhat.com/bugzilla> for instructions. Preprocessed source stored into /tmp/ccYn3cfX.out file, please attach this to your bugreport. Removing the -g option makes the issue go away. Reproducible: Always gcc-14.0.1-0.3.fc40.aarch64
Created attachment 2010693 [details] preprocessed sources
Thread 2.1 "cc1" hit Breakpoint 1, 0x0000000000d052cc in internal_error(char const*, ...) () Missing separate debuginfos, use: dnf debuginfo-install cpp-14.0.1-0.3.fc40.aarch64 (gdb) where #0 0x0000000000d052cc in internal_error(char const*, ...) () #1 0x0000000000d05458 in fancy_abort(char const*, int, char const*) () #2 0x0000000000cb6b70 in rtl_ssa::function_info::process_uses_of_deleted_def(rtl_ssa::set_info*) () #3 0x000000000150cd24 in rtl_ssa::function_info::change_insns(array_slice<rtl_ssa::insn_change*>) () #4 0x00000000015b7908 in ldp_bb_info::try_fuse_pair(bool, unsigned int, rtl_ssa::insn_info*, rtl_ssa::insn_info*) () #5 0x000000000187eedc in 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) () #6 0x00000000014bf1dc in ldp_fusion_bb(rtl_ssa::bb_info*) () #7 0x00000000014bd958 in ldp_fusion() () #8 0x00000000014bd2f0 in (anonymous namespace)::pass_ldp_fusion::execute(function*) [clone .lto_priv.0] () #9 0x0000000000e6c6a4 in execute_one_pass(opt_pass*) () #10 0x0000000000f3bf60 in execute_pass_list_1(opt_pass*) () #11 0x0000000000f3bf8c in execute_pass_list_1(opt_pass*) () #12 0x0000000000f3b748 in execute_pass_list(function*, opt_pass*) () #13 0x0000000000fad44c in cgraph_node::expand() () #14 0x00000000016517dc in symbol_table::compile() () #15 0x000000000164e4a4 in symbol_table::finalize_compilation_unit() () #16 0x000000000162d964 in compile_file() [clone .lto_priv.0] () #17 0x00000000015d7908 in toplev::main(int, char**) () #18 0x00000000015d6e88 in main ()
Note, in gcc-14.0.1-0.4.fc40 I've applied a workaround - disabled the aarch64 -m{early,late}-ldp-fusion options by default temporarily, until this and another bug are fixed upstream.
And in gcc-14.0.1-0.6.fc40 it should be fixed for real.