https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96643
Bug ID: 96643 Summary: [11 Regression] ICE in deref_rvalue, at analyzer/region-model.cc:1288 Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-11.0.0-alpha20200816 snapshot (g:c99116aeeb9644ebddec653ee8b19de4d38b65bd) ICEs when compiling the following testcase w/ -O1 -fanalyzer: int l0; class qv { public: int operator[] (int b1) const { return k2[b1]; } private: int *k2; }; class g0 { qv nf, v6; void iq (); }; void g0::iq () { for (;;) if (nf[0] == 0) ++l0; } % g++-11.0.0 -O1 -fanalyzer -c sgmectcu.cc during IPA pass: analyzer sgmectcu.cc: In member function 'void g0::iq()': sgmectcu.cc:5:47: internal compiler error: in deref_rvalue, at analyzer/region-model.cc:1288 5 | int operator[] (int b1) const { return k2[b1]; } | ^ 0x7e490c ana::region_model::deref_rvalue(ana::svalue const*, tree_node*, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:1288 0x13723d1 ana::region_model::get_lvalue_1(ana::path_var, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:982 0x13727b3 ana::region_model::get_lvalue(ana::path_var, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:1055 0x1372e7f ana::region_model::get_rvalue_1(ana::path_var, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:1103 0x1373218 ana::region_model::get_rvalue(ana::path_var, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:1173 0x1373218 ana::region_model::get_rvalue(tree_node*, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:1186 0x1375c94 ana::region_model::on_assignment(gassign const*, ana::region_model_context*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model.cc:547 0x1356dc2 ana::exploded_node::on_stmt(ana::exploded_graph&, ana::supernode const*, gimple const*, ana::program_state*) const /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:1029 0x135800d ana::exploded_graph::process_node(ana::exploded_node*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:2526 0x1358afa ana::exploded_graph::process_worklist() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:2341 0x135ac2f ana::impl_run_checkers(ana::logger*) /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:4107 0x135b84c ana::run_checkers() /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:4175 0x1350208 execute /var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/analyzer-pass.cc:84