https://gcc.gnu.org/g:a2f39ed4bdbdb8b26b3bd3de6a8007903d03159d
commit r17-3814-ga2f39ed4bdbdb8b26b3bd3de6a8007903d03159d Author: Andrew MacLeod <[email protected]> Date: Mon Aug 31 10:00:27 2026 -0400 Dont access unused fields in set_prange. PR tree-optimization/127154 * value-range-storage.cc (prange_storage::set_prange) Access bitmask and points to fields only for kinds those that use them Diff: --- gcc/value-range-storage.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gcc/value-range-storage.cc b/gcc/value-range-storage.cc index 827a5260a19a..14fa6e29a9f9 100644 --- a/gcc/value-range-storage.cc +++ b/gcc/value-range-storage.cc @@ -710,9 +710,9 @@ prange_storage::set_prange (const prange &r) { unsigned num_words; m_kind = prange_format (r, num_words); - m_has_bitmask = !r.get_bitmask ().unknown_p (); + m_has_bitmask = false; + m_points_to_p = false; m_pt = r.m_pt; - m_points_to_p = r.m_points_to_p; unsigned index = 0; @@ -733,6 +733,9 @@ prange_storage::set_prange (const prange &r) gcc_unreachable (); } + m_has_bitmask = !r.get_bitmask ().unknown_p (); + m_points_to_p = r.m_points_to_p; + if (m_has_bitmask) { irange_bitmask bm = r.m_bitmask;
