https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108086
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2022-12-14
CC| |rsandifo at gcc dot gnu.org
Status|UNCONFIRMED |NEW
Ever confirmed|0 |1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed with 12.2.0
during RTL pass: fwprop1
main.cpp: In function ‘int main()’:
main.cpp:230:1: internal compiler error: in set_accesses, at
rtl-ssa/internals.inl:449
0x6ca5e3 rtl_ssa::insn_info::set_accesses(rtl_ssa::access_info**, unsigned int,
unsigned int)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/internals.inl:449
0x6ca5e3 rtl_ssa::insn_info::set_accesses(rtl_ssa::access_info**, unsigned int,
unsigned int)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/internals.inl:444
0x6ca5e3 rtl_ssa::function_info::finish_insn_accesses(rtl_ssa::insn_info*)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/insns.cc:407
0x1b0cabc
rtl_ssa::function_info::start_block(rtl_ssa::function_info::build_info&,
rtl_ssa::bb_info*)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/blocks.cc:1022
0x1b0cb5f
rtl_ssa::function_info::bb_walker::before_dom_children(basic_block_def*)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/blocks.cc:129
0x195216e dom_walker::walk(basic_block_def*)
/space/rguenther/src/gcc-12-branch/gcc/domwalk.cc:309
0x1b0d871 rtl_ssa::function_info::process_all_blocks()
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/blocks.cc:1252
0x1a83ba1 rtl_ssa::function_info::function_info(function*)
/space/rguenther/src/gcc-12-branch/gcc/rtl-ssa/functions.cc:50
0x1961033 fwprop_init
/space/rguenther/src/gcc-12-branch/gcc/fwprop.cc:906
0x1961033 fwprop
/space/rguenther/src/gcc-12-branch/gcc/fwprop.cc:976
we have
// Change the list of instruction accesses to ACCESSES, which contains
// NUM_DEFS definitions followed by NUM_USES uses.
inline void
insn_info::set_accesses (access_info **accesses,
unsigned int num_defs, unsigned int num_uses)
{
m_accesses = accesses;
m_num_defs = num_defs;
gcc_assert (num_defs == m_num_defs);
that's a strange assert ...