diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2025-01-09 12:53:27 -0800 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2025-04-21 08:23:07 -0700 |
commit | d508d24282c6a8172be2abcb2223232f452b667f (patch) | |
tree | 7169aaeeed9d8ab89e3ab8afa3c0a18845f0220b | |
parent | a619a128c992b2121a862b8470960ae751d25db6 (diff) | |
download | gcc-d508d24282c6a8172be2abcb2223232f452b667f.zip gcc-d508d24282c6a8172be2abcb2223232f452b667f.tar.gz gcc-d508d24282c6a8172be2abcb2223232f452b667f.tar.bz2 |
Add assert to array_slice::begin/end
So while debugging PR 118320, I found it was useful to have
an assert inside array_slice::begin/end that the array slice isvalid
rather than getting an segfault. This adds an assert that is only
enabled for checking.
OK? Bootstrapped and tested on x86_64-linux-gnu.
gcc/ChangeLog:
* vec.h (array_slice::begin): Assert that the
slice is valid.
(array_slice::end): Likewise.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
-rw-r--r-- | gcc/vec.h | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -2395,11 +2395,11 @@ public: array_slice (vec<OtherT, A, vl_embed> *v) : m_base (v ? v->address () : nullptr), m_size (v ? v->length () : 0) {} - iterator begin () { return m_base; } - iterator end () { return m_base + m_size; } + iterator begin () { gcc_checking_assert (is_valid ()); return m_base; } + iterator end () { gcc_checking_assert (is_valid ()); return m_base + m_size; } - const_iterator begin () const { return m_base; } - const_iterator end () const { return m_base + m_size; } + const_iterator begin () const { gcc_checking_assert (is_valid ()); return m_base; } + const_iterator end () const { gcc_checking_assert (is_valid ()); return m_base + m_size; } value_type &front (); value_type &back (); |