https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95042
Bug ID: 95042 Summary: ICE in can_merge_p, at analyzer/region-model.cc:2053 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-10.1.0-RC-20200430 ICEs when compiling the following testcase w/ -O1 -fanalyzer: class kz { public: kz (); private: int yu; }; const kz vl; kz ax; void c1 (bool va, bool ze) { kz ny, fb = vl; if (va) { if (ze) ny = vl; fb = ny; } ax = fb; } % g++-10.1.0 -O1 -fanalyzer -c qjxbb0xt.cpp during IPA pass: analyzer qjxbb0xt.cpp: In function 'void c1(bool, bool)': qjxbb0xt.cpp:22:10: internal compiler error: in can_merge_p, at analyzer/region-model.cc:2053 22 | fb = ny; | ~~~^~~~ 0x7e1592 ana::map_region::can_merge_p(ana::map_region const*, ana::map_region const*, ana::map_region*, ana::region_id, ana::model_merger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/region-model.cc:2053 0x13714a2 ana::map_region::can_merge_p(ana::map_region const*, ana::map_region const*, ana::map_region*, ana::region_id, ana::model_merger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/region-model.cc:2085 0x1371a5f ana::stack_region::can_merge_p(ana::stack_region const*, ana::stack_region const*, ana::model_merger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/region-model.cc:2904 0x1371dfc ana::stack_region::can_merge_p(ana::stack_region const*, ana::stack_region const*, ana::model_merger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/vec.h:1411 0x1371dfc ana::root_region::can_merge_p(ana::root_region const*, ana::root_region const*, ana::root_region*, ana::model_merger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/region-model.cc:3311 0x1371f42 ana::region_model::can_merge_with_p(ana::region_model const&, ana::region_model*, ana::svalue_id_merger_mapping*) const /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/region-model.cc:6823 0x135f09e ana::program_state::can_merge_with_p(ana::program_state const&, ana::extrinsic_state const&, ana::program_state*) const /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/program-state.cc:1011 0x134d1db ana::exploded_graph::get_or_create_node(ana::program_point const&, ana::program_state const&, ana::state_change*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/engine.cc:1970 0x1350b42 ana::exploded_graph::process_node(ana::exploded_node*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/engine.cc:2547 0x135131a ana::exploded_graph::process_worklist() /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/engine.cc:2348 0x1351a4b ana::impl_run_checkers(ana::logger*) /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/engine.cc:4029 0x135261c ana::run_checkers() /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/engine.cc:4097 0x13471b8 execute /var/tmp/portage/sys-devel/gcc-10.1.0_rc20200430/work/gcc-10.1.0-RC-20200430/gcc/analyzer/analyzer-pass.cc:84