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

            Bug ID: 93438
           Summary: ICE in operator[], at vec.h:867
           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: ---

gcc-10.0.0-alpha20200119 snapshot (g:3684bbb022cd75da55e1457673f269980aa12cdf)
ICEs when compiling the following testcase w/ -fanalyzer:

void
tw (int **la, int pk)
{
  int *ow = *la;
  int jo = !!pk;

  if (jo == 0)
    *la = &pk;

  tw (&ow, pk);
}

% gcc-10.0.0-alpha20200119 -fanalyzer -c yxwf0zfa.c
during IPA pass: analyzer
yxwf0zfa.c: In function 'tw':
yxwf0zfa.c:8:9: internal compiler error: in operator[], at vec.h:867
    8 |     *la = &pk;
      |     ~~~~^~~~~
0x719d3a vec<region_id, va_heap, vl_embed>::operator[](unsigned int)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/vec.h:867
0x71adee vec<region_id, va_heap, vl_embed>::operator[](unsigned int)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/tree.h:3392
0x71adee vec<region_id, va_heap, vl_ptr>::operator[](unsigned int) const
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/vec.h:1424
0x71adee stack_region::get_frame_rid(unsigned int) const
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.h:1367
0x71adee region_model::get_lvalue_1(path_var, region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:4665
0x11007d3 region_model::get_lvalue(path_var, region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:4712
0x11009d4 region_svalue::merge_values(region_svalue const&, region_svalue
const&, svalue_id*, tree_node*, model_merger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:509
0x1100bd0 model_merger::can_merge_values_p(svalue_id, svalue_id, svalue_id*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:6717
0x1100f01 map_region::can_merge_p(map_region const*, map_region const*,
map_region*, region_id, model_merger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:1906
0x11012be stack_region::can_merge_p(stack_region const*, stack_region const*,
model_merger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:2657
0x110178c stack_region::can_merge_p(stack_region const*, stack_region const*,
model_merger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/vec.h:1411
0x110178c root_region::can_merge_p(root_region const*, root_region const*,
root_region*, model_merger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:3057
0x11018d2 region_model::can_merge_with_p(region_model const&, region_model*,
svalue_id_merger_mapping*) const
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/region-model.cc:6343
0x10ef42e program_state::can_merge_with_p(program_state const&, extrinsic_state
const&, program_state*) const
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/program-state.cc:909
0x10df5a3 exploded_graph::get_or_create_node(program_point const&,
program_state const&, state_change*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/engine.cc:1892
0x10e21e9 exploded_graph::process_node(exploded_node*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/engine.cc:2450
0x10e29b2 exploded_graph::process_worklist()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/engine.cc:2253
0x10e3039 impl_run_checkers(logger*)
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/engine.cc:3570
0x10e3ad3 run_checkers()
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/engine.cc:3624
0x10d9558 execute
       
/var/tmp/portage/sys-devel/gcc-10.0.0_alpha20200119/work/gcc-10-20200119/gcc/analyzer/analyzer-pass.cc:84

Reply via email to