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

            Bug ID: 96699
           Summary: [11 Regression] ICE in
                    fold_convert_const_int_from_real, at fold-const.c:2038
           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: ---

gcc-11.0.0-alpha20200816 snapshot (g:c99116aeeb9644ebddec653ee8b19de4d38b65bd)
ICEs when compiling the following testcase w/ -fanalyzer:

struct qi {
  union {
    int hj;
    float sl;
  };
};

void
i2 (struct qi *la)
{
  if (la->hj == 0)
    la->sl = 0.0f;
}

% gcc-11.0.0 -fanalyzer -c lnlqkm5b.c
during IPA pass: analyzer
lnlqkm5b.c: In function 'i2':
lnlqkm5b.c:12:12: internal compiler error: in fold_convert_const_int_from_real,
at fold-const.c:2038
   12 |     la->sl = 0.0f;
      |     ~~~~~~~^~~~~~
0x62e70b fold_convert_const_int_from_real
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/fold-const.c:2038
0x62e70b fold_convert_const
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/fold-const.c:2284
0xa7016d fold_unary_loc(unsigned int, tree_code, tree_node*, tree_node*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/fold-const.c:8731
0x1123e9c ana::region_model_manager::maybe_fold_unaryop(tree_node*, tree_code,
ana::svalue const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model-manager.cc:369
0x1123f8a ana::region_model_manager::get_or_create_unaryop(tree_node*,
tree_code, ana::svalue const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model-manager.cc:382
0x1123f8a ana::region_model_manager::get_or_create_cast(tree_node*, ana::svalue
const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/region-model-manager.cc:399
0x114a1f3 ana::initial_svalue::implicitly_live_p(hash_set<ana::svalue const*,
false, default_hash_traits<ana::svalue const*> > const&, ana::region_model
const*) const
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/svalue.cc:529
0x114a1f3 ana::initial_svalue::implicitly_live_p(hash_set<ana::svalue const*,
false, default_hash_traits<ana::svalue const*> > const&, ana::region_model
const*) const
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/svalue.cc:518
0x184ad0d ana::dead_svalue_purger::should_purge_p(ana::svalue const*) const
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/constraint-manager.cc:1613
0x184ad0d void
ana::constraint_manager::purge<ana::dead_svalue_purger>(ana::dead_svalue_purger
const&, ana::purge_stats*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/constraint-manager.cc:1494
0x1849fa6 ana::constraint_manager::on_liveness_change(hash_set<ana::svalue
const*, false, default_hash_traits<ana::svalue const*> > const&,
ana::region_model const*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/constraint-manager.cc:1630
0x1103f5d ana::program_state::detect_leaks(ana::program_state const&,
ana::program_state const&, ana::svalue const*, ana::extrinsic_state const&,
ana::region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/program-state.cc:1037
0x10f430a 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:2538
0x10f4d5a ana::exploded_graph::process_worklist()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:2341
0x10f6e8f 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
0x10f7aac ana::run_checkers()
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/engine.cc:4175
0x10ec468 execute
       
/var/tmp/portage/sys-devel/gcc-11.0.0_alpha20200816/work/gcc-11-20200816/gcc/analyzer/analyzer-pass.cc:84

Reply via email to