From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2136) id CC1273858C52; Wed, 21 Sep 2022 11:29:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CC1273858C52 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1663759750; bh=GcICXjZtGNFdoQ1CTMC7IvNg2sfi67ajSFO4q4esuiI=; h=From:To:Subject:Date:From; b=g397f6Vb4uFp1E7JlQA7xNqUWuUgc9si5uO+Cmg8kASMbp9rv6vz/PudM2ZTirsug fDQ0ESv0qRcMqUkK4jzVgCd+V97zXvQ/NZcYxjdlm+eXLoc7/RUyaGDRn2dAVXVBT/ Zruo8q+QaoMJdAPF5RqI0MoPblbgkljbn7YozOIU= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Aldy Hernandez To: gcc-cvs@gcc.gnu.org Subject: [gcc r13-2760] Clear unused flags in frange for undefined ranges. X-Act-Checkin: gcc X-Git-Author: Aldy Hernandez X-Git-Refname: refs/heads/master X-Git-Oldrev: 41b5edaa5c03db36ad45a9cf524881de221a1812 X-Git-Newrev: 324fa420b66bc084dd5b20644c6ee7b35be90c00 Message-Id: <20220921112910.CC1273858C52@sourceware.org> Date: Wed, 21 Sep 2022 11:29:10 +0000 (GMT) List-Id: https://gcc.gnu.org/g:324fa420b66bc084dd5b20644c6ee7b35be90c00 commit r13-2760-g324fa420b66bc084dd5b20644c6ee7b35be90c00 Author: Aldy Hernandez Date: Wed Sep 21 09:49:14 2022 +0200 Clear unused flags in frange for undefined ranges. gcc/ChangeLog: * value-range.cc (frange::combine_zeros): Call set_undefined. (frange::intersect_nans): Same. (frange::intersect): Same. (frange::verify_range): Undefined ranges do not have a type. * value-range.h (frange::set_undefined): Clear NAN flags and type. Diff: --- gcc/value-range.cc | 8 ++++---- gcc/value-range.h | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gcc/value-range.cc b/gcc/value-range.cc index dc42b6d3120..505eb9211a7 100644 --- a/gcc/value-range.cc +++ b/gcc/value-range.cc @@ -422,7 +422,7 @@ frange::combine_zeros (const frange &r, bool union_p) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); changed = true; } return changed; @@ -506,7 +506,7 @@ frange::intersect_nans (const frange &r) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); if (flag_checking) verify_range (); return true; @@ -558,7 +558,7 @@ frange::intersect (const vrange &v) if (maybe_isnan ()) m_kind = VR_NAN; else - m_kind = VR_UNDEFINED; + set_undefined (); if (flag_checking) verify_range (); return true; @@ -696,7 +696,7 @@ frange::verify_range () switch (m_kind) { case VR_UNDEFINED: - // m_type is ignored. + gcc_checking_assert (!m_type); return; case VR_VARYING: gcc_checking_assert (m_type); diff --git a/gcc/value-range.h b/gcc/value-range.h index 325ed08f290..3668b331187 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -1083,6 +1083,10 @@ inline void frange::set_undefined () { m_kind = VR_UNDEFINED; + m_type = NULL; + m_pos_nan = false; + m_neg_nan = false; + // m_min and m_min are unitialized as they are REAL_VALUE_TYPE ??. if (flag_checking) verify_range (); }