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 ...

Reply via email to