https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93777
Bug ID: 93777 Summary: ICE in maybe_cast_1, at analyzer/region-model.cc:5064 Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gfortran-10.0.1-alpha20200216 snapshot (g:6e37e49616d429c5d922324ebd72ae95f12a079f) ICEs when compiling the following testcase, reduced from gcc/testsuite/gfortran.dg/block_13.f08, w/ -fanalyzer: program cb implicit none type :: jn real, allocatable :: ie character(len = :), allocatable :: e5 end type jn real, parameter :: gm = 5.0 block type(jn) :: r2 r2 = jn (gm, "") call vz (r2%ie, gm) end block contains subroutine vz (arg1, arg2) real :: arg1, arg2 if (arg1 .ne. arg2) STOP 1 end subroutine vz end program cb % powerpc-e300c3-linux-gnu-gfortran-10.0.1 -fanalyzer -c mouy3agw.f08 during IPA pass: analyzer mouy3agw.f08:13:0: 13 | call vz (r2%ie, gm) | internal compiler error: in maybe_cast_1, at analyzer/region-model.cc:5064 0x74b5ef ana::region_model::maybe_cast_1(tree_node*, ana::svalue_id) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:5064 0x1264da0 ana::region_model::maybe_cast(tree_node*, ana::svalue_id, ana::region_model_context*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:5085 0x1267671 ana::region::set_value(ana::region_model&, ana::region_id, ana::svalue_id, ana::region_model_context*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:1012 0x126cd35 ana::root_region::push_frame(ana::region_model*, function*, vec<ana::svalue_id, va_heap, vl_ptr>*, ana::region_model_context*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:2894 0x1270ce6 ana::region_model::update_for_call_superedge(ana::call_superedge const&, ana::region_model_context*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:5740 0x1270e47 ana::region_model::maybe_update_for_edge(ana::superedge const&, gimple const*, ana::region_model_context*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/region-model.cc:5678 0x125aba3 ana::program_state::on_edge(ana::exploded_graph&, ana::exploded_node const&, ana::superedge const*, ana::state_change*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/program-state.cc:781 0x124726b ana::exploded_node::on_edge(ana::exploded_graph&, ana::superedge const*, ana::program_point*, ana::program_state*, ana::state_change*) const /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/engine.cc:1104 0x124d7e0 ana::exploded_graph::process_node(ana::exploded_node*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/engine.cc:2516 0x124ddd2 ana::exploded_graph::process_worklist() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/engine.cc:2267 0x124f94a ana::impl_run_checkers(ana::logger*) /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/engine.cc:3627 0x1250f11 ana::run_checkers() /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/engine.cc:3684 0x1245568 execute /var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-10.0.1_alpha20200216/work/gcc-10-20200216/gcc/analyzer/analyzer-pass.cc:84 (While my target here is powerpc, the ICE is not target-specific.)