https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87867
Bug ID: 87867 Summary: ICE on virtual destructor (-mlong-calls -ffunction-sections) on arm-none-eabi Product: gcc Version: 8.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mihail.ionescu at arm dot com Target Milestone: --- The issue is fixed on trunk. GCC 7.3 and 8.2 crash when compiling the following example with these specific options: "-mlong-calls", "-ffunction-sections". ======================================== class A { public: virtual ~A() { } }; class B { public: virtual ~B() { } }; class C : public A, public B { public: virtual ~C(); }; C::~C() { } ======================================== gcc-arm-error.cpp: In member function 'virtual void* C::_ZThn4_N1CD1Ev()': gcc-arm-error.cpp:21:1: internal compiler error: in gen_reg_rtx, at emit-rtl.c:1155 } ^ 0xa3a98c gen_reg_rtx(machine_mode) /arm-none-eabi/build/src/gcc/gcc/emit-rtl.c:1155 0xa54e1e force_reg(machine_mode, rtx_def*) /arm-none-eabi/build/src/gcc/gcc/explow.c:655 0x143237e gen_sibcall(rtx_def*, rtx_def*, rtx_def*) /arm-none-eabi/build/src/gcc/gcc/config/arm/arm.md:8272 0x11c3f0e arm32_output_mi_thunk /arm-none-eabi/build/src/gcc/gcc/config/arm/arm.c:26778 0x11c3f0e arm_output_mi_thunk /arm-none-eabi/build/src/gcc/gcc/config/arm/arm.c:26799 0x9813cb cgraph_node::expand_thunk(bool, bool) /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:1787 0x9836af cgraph_node::assemble_thunks_and_aliases() /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2067 0x983715 cgraph_node::assemble_thunks_and_aliases() /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2085 0x983c1c cgraph_node::expand() /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2202 0x98508a output_in_order /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2381 0x98508a symbol_table::compile() /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2623 0x987392 symbol_table::finalize_compilation_unit() /arm-none-eabi/build/src/gcc/gcc/cgraphunit.c:2717 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.