From f513a10e4df44d7bcc8d1c2659ec8660ac938f9e Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Tue, 16 May 2023 22:21:12 +0200 Subject: Add Value_Range::operator=. gcc/ChangeLog: * value-range.h (Value_Range::operator=): New. --- gcc/value-range.h | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/gcc/value-range.h b/gcc/value-range.h index ab982d18402..af81d6080da 100644 --- a/gcc/value-range.h +++ b/gcc/value-range.h @@ -523,6 +523,7 @@ public: Value_Range (const Value_Range &); void set_type (tree type); vrange& operator= (const vrange &); + Value_Range& operator= (const Value_Range &); bool operator== (const Value_Range &r) const; bool operator!= (const Value_Range &r) const; operator vrange &(); @@ -642,6 +643,30 @@ Value_Range::operator= (const vrange &r) return *m_vrange; } +inline Value_Range & +Value_Range::operator= (const Value_Range &r) +{ + if (r.m_vrange == &r.m_irange) + { + m_irange = r.m_irange; + m_vrange = &m_irange; + } + else if (r.m_vrange == &r.m_frange) + { + m_frange = r.m_frange; + m_vrange = &m_frange; + } + else if (r.m_vrange == &r.m_unsupported) + { + m_unsupported = r.m_unsupported; + m_vrange = &m_unsupported; + } + else + gcc_unreachable (); + + return *this; +} + inline bool Value_Range::operator== (const Value_Range &r) const { -- cgit v1.2.1