https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108003
Bug ID: 108003
Summary: [13 Regression] ICE in bitmap_check_index, at
sbitmap.h:105
Product: gcc
Version: 13.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 13.0.0 20221204 snapshot (g:24b9337d1f1b5197b6498dceb9074319be003449) ICEs
when compiling the following testcase, reduced from
libstdc++-v3/testsuite/27_io/basic_filebuf/seekoff/wchar_t/9875_seekoff.cc, w/
-O1 -fanalyzer --param analyzer-max-svalue-depth=5:
struct locale {
class _Impl;
_Impl *_M_impl;
template <typename _Facet>
locale (const locale &, _Facet *);
static locale
classic ();
};
struct locale::_Impl {
_Impl (_Impl, int);
};
template <typename _Facet>
locale::locale (const locale &, _Facet *)
{
new _Impl (*_M_impl, 1);
}
struct codecvt {
virtual void do_max_lengththrow ();
};
void
test01 ()
{
locale (locale::classic (), new codecvt);
}
% g++-13 -O1 -fanalyzer --param analyzer-max-svalue-depth=5 -c nsbergsz.cc
during IPA pass: analyzer
nsbergsz.cc: In constructor 'locale::locale(const locale&, _Facet*) [with
_Facet = codecvt]':
nsbergsz.cc:19:3: internal compiler error: in bitmap_check_index, at
sbitmap.h:105
19 | new _Impl (*_M_impl, 1);
| ^~~~~~~~~~~~~~~~~~~~~~~
0x8a6707 bitmap_check_index
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/sbitmap.h:105
0x8a6707 bitmap_set_bit
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/sbitmap.h:133
0x8a6707 ana::region_model::get_referenced_base_regions(auto_sbitmap&) const
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/region-model.cc:4908
0x15b0692 ana::region_model::get_or_create_region_for_heap_alloc(ana::svalue
const*, ana::region_model_context*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/region-model.cc:4879
0x15c1a49 ana::kf_operator_new::impl_call_pre(ana::call_details const&) const
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/region-model-impl-calls.cc:996
0x15ac579 ana::region_model::on_call_pre(gcall const*,
ana::region_model_context*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/region-model.cc:1477
0x157b634 ana::feasibility_state::maybe_update_for_edge(ana::logger*,
ana::exploded_edge const*, ana::rejected_constraint**)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/engine.cc:4832
0x21e7ef1 ana::epath_finder::process_worklist_item(ana::feasible_worklist*,
ana::trimmed_graph const&, ana::feasible_graph*, ana::exploded_node const*,
unsigned int, std::unique_ptr<ana::exploded_path,
std::default_delete<ana::exploded_path> >*) const
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:498
0x21e8848 ana::epath_finder::explore_feasible_paths(ana::exploded_node const*,
char const*, unsigned int)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:418
0x21e8f31 ana::epath_finder::get_best_epath(ana::exploded_node const*, char
const*, unsigned int, std::unique_ptr<ana::feasibility_problem,
std::default_delete<ana::feasibility_problem> >*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:164
0x21e905c ana::saved_diagnostic::calc_best_epath(ana::epath_finder*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:811
0x21ed7cf ana::dedupe_winners::add(ana::logger*, ana::epath_finder*,
ana::saved_diagnostic*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:1178
0x21ea5a3 ana::diagnostic_manager::emit_saved_diagnostics(ana::exploded_graph
const&)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/diagnostic-manager.cc:1328
0x15878ec ana::impl_run_checkers(ana::logger*)
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/engine.cc:6112
0x15888c6 ana::run_checkers()
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/engine.cc:6186
0x15771e8 execute
/var/tmp/portage/sys-devel/gcc-13.0.0_p20221204/work/gcc-13-20221204/gcc/analyzer/analyzer-pass.cc:87