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

--- Comment #4 from Martin Jambor <jamborm at gcc dot gnu.org> ---
I don't think this has much to do with IPA-CP per se.  What is
happening is that call_may_clobber_ref_p_1 extracts SSA_NAME_PTR_INFO
of an SSA_NAME that is a base of a MEM_REF and runs
pt_solutions_intersect on it, but the SSA_NAME_PTR_INFO just has
invalid pt.vars bitmap address 0xffffffffffff8000 in it (before IPA-CP
changed anything).

When I set a watch in gdb to find out how the value got there, it
turned out to be from a rather unexpected context:

Watchpoint 5: ((ptr_info_def *) 0x3fffaf246e20)->pt.vars

Old value = (bitmap) 0xafafafafafafafaf
New value = (bitmap) 0xffffffffffff8000
wi::copy<trailing_wide_int_storage,
generic_wide_int<wide_int_ref_storage<false, true> > > (x=..., y=...)
    at /home/jamborm/gcc/mine/src/gcc/wide-int.h:1776
1776      do
(gdb) bt
#0  wi::copy<trailing_wide_int_storage,
generic_wide_int<wide_int_ref_storage<false, true> > > (x=..., y=...)
    at /home/jamborm/gcc/mine/src/gcc/wide-int.h:1776
#1  0x00000000112eea1c in
trailing_wide_int_storage::operator=<generic_wide_int<wide_int_ref_storage<false,
true> > > (this=0x3fffffffd920, x=...) at
/home/jamborm/gcc/mine/src/gcc/wide-int.h:1432
#2  0x00000000112edff8 in
generic_wide_int<trailing_wide_int_storage>::operator=<generic_wide_int<wide_int_ref_storage<false,
true> > > (this=0x3fffffffd920, x=...) at
/home/jamborm/gcc/mine/src/gcc/wide-int.h:916
#3  0x00000000112ed96c in
range_info_def::set_min<generic_wide_int<wide_int_ref_storage<false, true> > >
(
    this=0x3fffaf246e20, x=...) at
/home/jamborm/gcc/mine/src/gcc/tree-ssanames.h:52
#4  0x00000000112ea434 in set_range_info_raw (name=<ssa_name 0x3fffaf2e0990>,
range_type=VR_RANGE, min=..., 
    max=...) at /home/jamborm/gcc/mine/src/gcc/tree-ssanames.c:360
#5  0x00000000112ea91c in set_range_info (name=<ssa_name 0x3fffaf2e0990>,
range_type=VR_RANGE, min=..., 
    max=...) at /home/jamborm/gcc/mine/src/gcc/tree-ssanames.c:398
#6  0x0000000011c25b44 in evrp_range_analyzer::set_ssa_range_info
(this=0x3fffffffe0f8, 
    lhs=<ssa_name 0x3fffaf2e0990>, vr=0x3fffffffddb0)
    at /home/jamborm/gcc/mine/src/gcc/gimple-ssa-evrp-analyze.c:116
#7  0x0000000011c26a18 in evrp_range_analyzer::record_ranges_from_stmt
(this=0x3fffffffe0f8, 
    stmt=0x3fffaf43e290, temporary=false) at
/home/jamborm/gcc/mine/src/gcc/gimple-ssa-evrp-analyze.c:312
#8  0x0000000011c22ab4 in evrp_dom_walker::before_dom_children
(this=0x3fffffffe0c0, bb=0x3fffaf450138)
    at /home/jamborm/gcc/mine/src/gcc/gimple-ssa-evrp.c:139
#9  0x0000000011bdc634 in dom_walker::walk (this=0x3fffffffe0c0,
bb=0x3fffaf450138)
    at /home/jamborm/gcc/mine/src/gcc/domwalk.c:353
#10 0x0000000011c23448 in execute_early_vrp () at
/home/jamborm/gcc/mine/src/gcc/gimple-ssa-evrp.c:311
#11 0x0000000011c235f0 in (anonymous namespace)::pass_early_vrp::execute
(this=0x1282aed0)
    at /home/jamborm/gcc/mine/src/gcc/gimple-ssa-evrp.c:348

That looks like some memory corruption or unwanted memory sharing...?

Reply via email to