public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug analyzer/101522] New: ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving)
@ 2021-07-20  5:35 asolokha at gmx dot com
  2021-07-21 20:12 ` [Bug analyzer/101522] " dmalcolm at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: asolokha at gmx dot com @ 2021-07-20  5:35 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 101522
           Summary: ICE: Segmentation fault (in
                    ana::binding_cluster::purge_state_involving)
           Product: gcc
           Version: 12.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++-12.0.0-alpha20210718 snapshot (g:6ae8aac19cdbdbd96d90f86e4d8505fe121bdf06)
intermittently ICEs when compiling the following testcase, reduced from
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/max.pass.cpp
from the libcxx 12.0.0 test suite, w/ -fanalyzer:

double
sqrt ();

namespace std {
  class gamma_distribution {
  public:
    gamma_distribution () : _M_param () {}

  private:
    struct param_type {
      param_type () : _M_beta () { _M_a2 = 1 / ::sqrt (); }
      double _M_beta, _M_a2;
    };
    param_type _M_param;
    int _M_saved_available, _M_saved = 0, _M_param0 = 0;
  };

  struct fisher_f_distribution {
    gamma_distribution _M_gd_x, _M_gd_y;
  };
}

int
main ()
{
  std::fisher_f_distribution d;

  return 0;
}

% MALLOC_PERTURB_=3 MALLOC_CHECK_=3 g++-12.0.0 -fanalyzer -c rxkecadv.cpp
during IPA pass: analyzer
rxkecadv.cpp: In constructor
'std::gamma_distribution::param_type::param_type()':
rxkecadv.cpp:11:55: internal compiler error: Segmentation fault
   11 |       param_type () : _M_beta () { _M_a2 = 1 / ::sqrt (); }
      |                                                ~~~~~~~^~
0x11077df crash_signal
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/toplev.c:328
0x150cefc ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/store.cc:1330
0x150f75f ana::store::purge_state_involving(ana::svalue const*,
ana::region_model_manager*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/store.cc:2497
0x14e0a56 ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/region-model.cc:1309
0x14e0a56 ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/region-model.cc:1304
0x14e0c30 ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/region-model.cc:1074
0x14e39c3 ana::region_model::on_stmt_pre(gimple const*, bool*, bool*,
ana::region_model_context*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/region-model.cc:1027
0x14b42ed ana::exploded_node::on_stmt(ana::exploded_graph&, ana::supernode
const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/engine.cc:1223
0x14b6882 ana::exploded_graph::process_node(ana::exploded_node*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/engine.cc:3098
0x14b73ea ana::exploded_graph::process_worklist()
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/engine.cc:2684
0x14b9845 ana::impl_run_checkers(ana::logger*)
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/engine.cc:4972
0x14ba6e0 ana::run_checkers()
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/engine.cc:5043
0x14ab7a8 execute
       
/var/tmp/portage/sys-devel/gcc-12.0.0_alpha20210718/work/gcc-12-20210718/gcc/analyzer/analyzer-pass.cc:87

This is a memory corruption failure, so only happens sporadically. Maybe I've
reduced the testcase too much, but I have to set glibc's MALLOC_PERTURB_=3
MALLOC_CHECK_=3 and also run compilation in a loop to reproduce it at least
several times in a run:

% for i in {1..100}; do MALLOC_PERTURB_=3 MALLOC_CHECK_=3 g++-12.0.0 -fanalyzer
-c rxkecadv.cpp; done

Valgrind gives the following when gcc ICEs:

% MALLOC_PERTURB_=3 MALLOC_CHECK_=3 g++-12.0.0 -fanalyzer -c rxkecadv.cpp
-wrapper valgrind,-q
==924238== Invalid read of size 8
==924238==    at 0x150CF40: slide (hash-table.h:1115)
==924238==    by 0x150CF40: operator++ (hash-table.h:1130)
==924238==    by 0x150CF40: operator++ (hash-map.h:256)
==924238==    by 0x150CF40:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1326)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==  Address 0x5aabf50 is 128 bytes inside a block of size 208 free'd
==924238==    at 0x4840DEB: free (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x151674E: hash_table<hash_map<ana::binding_key const*,
ana::svalue const*, simple_hashmap_traits<default_hash_traits<ana::binding_key
const*>, ana::svalue const*> >::hash_entry, false,
xcallocator>::find_slot_with_hash(ana::binding_key const* const&, unsigned int,
insert_option) (hash-table.h:964)
==924238==    by 0x150D01B: put (hash-map.h:170)
==924238==    by 0x150D01B: put (store.h:485)
==924238==    by 0x150D01B:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1341)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==  Block was alloc'd at
==924238==    at 0x4843310: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x1DF4624: xcalloc (xmalloc.c:162)
==924238==    by 0x1508E9B: data_alloc (hash-table.h:275)
==924238==    by 0x1508E9B: alloc_entries (hash-table.h:711)
==924238==    by 0x1508E9B: hash_table (hash-table.h:659)
==924238==    by 0x1508E9B: hash_map (hash-map.h:151)
==924238==    by 0x1508E9B: ana::binding_map::binding_map(ana::binding_map
const&) (store.cc:491)
==924238==    by 0x150F107: binding_cluster (store.cc:1039)
==924238==    by 0x150F107: ana::store::store(ana::store const&)
(store.cc:1951)
==924238==    by 0x14D1B4E: ana::region_model::region_model(ana::region_model
const&) (region-model.cc:255)
==924238==    by 0x14C5FB4: ana::program_state::operator=(ana::program_state
const&) (program-state.cc:749)
==924238==    by 0x14B69E8:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3123)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==
==924238== Invalid read of size 8
==924238==    at 0x150CEF9:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1328)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==  Address 0x5aabf50 is 128 bytes inside a block of size 208 free'd
==924238==    at 0x4840DEB: free (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x151674E: hash_table<hash_map<ana::binding_key const*,
ana::svalue const*, simple_hashmap_traits<default_hash_traits<ana::binding_key
const*>, ana::svalue const*> >::hash_entry, false,
xcallocator>::find_slot_with_hash(ana::binding_key const* const&, unsigned int,
insert_option) (hash-table.h:964)
==924238==    by 0x150D01B: put (hash-map.h:170)
==924238==    by 0x150D01B: put (store.h:485)
==924238==    by 0x150D01B:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1341)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==  Block was alloc'd at
==924238==    at 0x4843310: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x1DF4624: xcalloc (xmalloc.c:162)
==924238==    by 0x1508E9B: data_alloc (hash-table.h:275)
==924238==    by 0x1508E9B: alloc_entries (hash-table.h:711)
==924238==    by 0x1508E9B: hash_table (hash-table.h:659)
==924238==    by 0x1508E9B: hash_map (hash-map.h:151)
==924238==    by 0x1508E9B: ana::binding_map::binding_map(ana::binding_map
const&) (store.cc:491)
==924238==    by 0x150F107: binding_cluster (store.cc:1039)
==924238==    by 0x150F107: ana::store::store(ana::store const&)
(store.cc:1951)
==924238==    by 0x14D1B4E: ana::region_model::region_model(ana::region_model
const&) (region-model.cc:255)
==924238==    by 0x14C5FB4: ana::program_state::operator=(ana::program_state
const&) (program-state.cc:749)
==924238==    by 0x14B69E8:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3123)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==
==924238== Invalid read of size 8
==924238==    at 0x150CF1F:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1336)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==  Address 0x5aabf58 is 136 bytes inside a block of size 208 free'd
==924238==    at 0x4840DEB: free (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x151674E: hash_table<hash_map<ana::binding_key const*,
ana::svalue const*, simple_hashmap_traits<default_hash_traits<ana::binding_key
const*>, ana::svalue const*> >::hash_entry, false,
xcallocator>::find_slot_with_hash(ana::binding_key const* const&, unsigned int,
insert_option) (hash-table.h:964)
==924238==    by 0x150D01B: put (hash-map.h:170)
==924238==    by 0x150D01B: put (store.h:485)
==924238==    by 0x150D01B:
ana::binding_cluster::purge_state_involving(ana::svalue const*,
ana::region_model_manager*) (store.cc:1341)
==924238==    by 0x150F75F: ana::store::purge_state_involving(ana::svalue
const*, ana::region_model_manager*) (store.cc:2497)
==924238==    by 0x14E0A56: purge_state_involving (region-model.cc:1309)
==924238==    by 0x14E0A56:
ana::region_model::purge_state_involving(ana::svalue const*,
ana::region_model_context*) (region-model.cc:1304)
==924238==    by 0x14E0C30: ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*, bool*) (region-model.cc:1074)
==924238==    by 0x14E39C3: ana::region_model::on_stmt_pre(gimple const*,
bool*, bool*, ana::region_model_context*) (region-model.cc:1027)
==924238==    by 0x14B42ED: ana::exploded_node::on_stmt(ana::exploded_graph&,
ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*)
(engine.cc:1223)
==924238==    by 0x14B6882:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3098)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==  Block was alloc'd at
==924238==    at 0x4843310: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==924238==    by 0x1DF4624: xcalloc (xmalloc.c:162)
==924238==    by 0x1508E9B: data_alloc (hash-table.h:275)
==924238==    by 0x1508E9B: alloc_entries (hash-table.h:711)
==924238==    by 0x1508E9B: hash_table (hash-table.h:659)
==924238==    by 0x1508E9B: hash_map (hash-map.h:151)
==924238==    by 0x1508E9B: ana::binding_map::binding_map(ana::binding_map
const&) (store.cc:491)
==924238==    by 0x150F107: binding_cluster (store.cc:1039)
==924238==    by 0x150F107: ana::store::store(ana::store const&)
(store.cc:1951)
==924238==    by 0x14D1B4E: ana::region_model::region_model(ana::region_model
const&) (region-model.cc:255)
==924238==    by 0x14C5FB4: ana::program_state::operator=(ana::program_state
const&) (program-state.cc:749)
==924238==    by 0x14B69E8:
ana::exploded_graph::process_node(ana::exploded_node*) (engine.cc:3123)
==924238==    by 0x14B73EA: ana::exploded_graph::process_worklist()
(engine.cc:2684)
==924238==    by 0x14B9845: ana::impl_run_checkers(ana::logger*)
(engine.cc:4972)
==924238==    by 0x14BA6E0: ana::run_checkers() (engine.cc:5043)
==924238==    by 0x14AB7A8: (anonymous
namespace)::pass_analyzer::execute(function*) (analyzer-pass.cc:87)
==924238==    by 0x102EC0C: execute_one_pass(opt_pass*) (passes.c:2567)
==924238==

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug analyzer/101522] ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving)
  2021-07-20  5:35 [Bug analyzer/101522] New: ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving) asolokha at gmx dot com
@ 2021-07-21 20:12 ` dmalcolm at gcc dot gnu.org
  2021-07-21 23:18 ` cvs-commit at gcc dot gnu.org
  2021-07-21 23:27 ` dmalcolm at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-07-21 20:12 UTC (permalink / raw)
  To: gcc-bugs

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

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2021-07-21
             Status|UNCONFIRMED                 |ASSIGNED

--- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Thanks for filing this.

Confirmed; I'm working on a fix.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug analyzer/101522] ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving)
  2021-07-20  5:35 [Bug analyzer/101522] New: ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving) asolokha at gmx dot com
  2021-07-21 20:12 ` [Bug analyzer/101522] " dmalcolm at gcc dot gnu.org
@ 2021-07-21 23:18 ` cvs-commit at gcc dot gnu.org
  2021-07-21 23:27 ` dmalcolm at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-07-21 23:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>:

https://gcc.gnu.org/g:87bd75cd49aac68e90bd9b6b5e14582d6e0ccafa

commit r12-2459-g87bd75cd49aac68e90bd9b6b5e14582d6e0ccafa
Author: David Malcolm <dmalcolm@redhat.com>
Date:   Wed Jul 21 19:16:08 2021 -0400

    analyzer: fix ICE in binding_cluster::purge_state_involving [PR101522]

    gcc/analyzer/ChangeLog:
            PR analyzer/101522
            * store.cc (binding_cluster::purge_state_involving): Don't change
            m_map whilst iterating through it.

    gcc/testsuite/ChangeLog:
            PR analyzer/101522
            * g++.dg/analyzer/pr101522.C: New test.

    Signed-off-by: David Malcolm <dmalcolm@redhat.com>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug analyzer/101522] ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving)
  2021-07-20  5:35 [Bug analyzer/101522] New: ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving) asolokha at gmx dot com
  2021-07-21 20:12 ` [Bug analyzer/101522] " dmalcolm at gcc dot gnu.org
  2021-07-21 23:18 ` cvs-commit at gcc dot gnu.org
@ 2021-07-21 23:27 ` dmalcolm at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2021-07-21 23:27 UTC (permalink / raw)
  To: gcc-bugs

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

David Malcolm <dmalcolm at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Should be fixed by the above patch.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-07-21 23:27 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-20  5:35 [Bug analyzer/101522] New: ICE: Segmentation fault (in ana::binding_cluster::purge_state_involving) asolokha at gmx dot com
2021-07-21 20:12 ` [Bug analyzer/101522] " dmalcolm at gcc dot gnu.org
2021-07-21 23:18 ` cvs-commit at gcc dot gnu.org
2021-07-21 23:27 ` dmalcolm at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).