[Bug middle-end/91267] [10 regression] SEGV in value_range_base::equal_p
jakub at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Jul 28 16:03:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91267
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The problem is in the
- old_vr = get_value_range (var);
+ old_vr = get_lattice_entry (var);
change because get_value_range used to return the address of the const varying
constant, but get_lattice_entry returns NULL if SSA_NAME_VERSION (var) >=
num_vr_values, and invoking !old_vr->equal_p (*new_vr,
/*ignore_equivs=*/false);
on NULL old_vr is UB which ICEs.
The question is if we should just return false if old_vr is NULL, or if we
should check that case in the callers or their callers and don't even call say
record_ranges_from_stmt for setters of newly added SSA_NAMEs.
More information about the Gcc-bugs
mailing list