aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <quic_apinski@quicinc.com>2025-01-09 12:53:27 -0800
committerAndrew Pinski <quic_apinski@quicinc.com>2025-04-21 08:23:07 -0700
commitd508d24282c6a8172be2abcb2223232f452b667f (patch)
tree7169aaeeed9d8ab89e3ab8afa3c0a18845f0220b
parenta619a128c992b2121a862b8470960ae751d25db6 (diff)
downloadgcc-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.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/vec.h b/gcc/vec.h
index 915df06..eae4b0f 100644
--- a/gcc/vec.h
+++ b/gcc/vec.h
@@ -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 ();