https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96949

            Bug ID: 96949
           Summary: ICE in get_bit_offset, at analyzer/analyzer.h:164
           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: ---
            Target: powerpc-*-linux-gnu

gfortran-11.0.0-alpha20200906 snapshot
(g:23f8b90c401842afcbaa50a7fd3c2f37818f4396) ICEs when compiling the following
testcase w/ -fanalyzer --param analyzer-max-svalue-depth=0:

program n6
  integer :: ck(2,2)
  integer :: ac

  data ck /4 * 1/

  call x9()

contains
  subroutine x9()
    if (ck(2, 1) == 1) then
       ac = 1
    else
       ac = 0
    end if
  end subroutine x9
end program n6

% powerpc-e300c3-linux-gnu-gfortran-11.0.0 -fanalyzer --param
analyzer-max-svalue-depth=0 -c d6ym5nxs.f90
during IPA pass: analyzer
d6ym5nxs.f90:11:0:

   11 |     if (ck(2, 1) == 1) then
      |
internal compiler error: in get_bit_offset, at analyzer/analyzer.h:164
0x70304f ana::region_offset::get_bit_offset() const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/analyzer.h:164
0x70304f ana::region_offset::get_bit_offset() const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/analyzer.h:162
0x70304f ana::binding_map::apply_ctor_val_to_range(ana::region const*,
ana::region_model_manager*, tree_node*, tree_node*, tree_node*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/store.cc:460
0x11fbe35 ana::binding_map::apply_ctor_to_region(ana::region const*,
tree_node*, ana::region_model_manager*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/store.cc:428
0x11c8a5a ana::decl_region::get_svalue_for_constructor(tree_node*,
ana::region_model_manager*) const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/region.cc:907
0x11cd8ae ana::region_model::get_initial_value_for_global(ana::region const*)
const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/region-model.cc:1283
0x11cf7d3 ana::region_model::get_rvalue(ana::path_var,
ana::region_model_context*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/region-model.cc:1223
0x11cfbd7 ana::region_model::on_assignment(gassign const*,
ana::region_model_context*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/region-model.cc:562
0x11b314a ana::exploded_node::on_stmt(ana::exploded_graph&, ana::supernode
const*, gimple const*, ana::program_state*) const
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/engine.cc:1029
0x11b4385 ana::exploded_graph::process_node(ana::exploded_node*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/engine.cc:2526
0x11b4be2 ana::exploded_graph::process_worklist()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/engine.cc:2341
0x11b6cc4 ana::impl_run_checkers(ana::logger*)
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/engine.cc:4107
0x11b7971 ana::run_checkers()
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/engine.cc:4175
0x11ac548 execute
       
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-11.0.0_alpha20200906/work/gcc-11-20200906/gcc/analyzer/analyzer-pass.cc:84

(While my target here is powerpc, the ICE should not be target-specific.)

Reply via email to