From 9eff07a746a9e6a9b105c12b5e28073360fa8065 Mon Sep 17 00:00:00 2001 From: Chris Palmer Date: Tue, 6 Oct 2020 13:01:50 -0400 Subject: [PATCH] [libc++] Add assert to check bounds in `constexpr string_view::operator[]` Differential Revision: https://reviews.llvm.org/D88864 --- libcxx/include/string_view | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libcxx/include/string_view b/libcxx/include/string_view index 8a684a8..884bcf8 100644 --- a/libcxx/include/string_view +++ b/libcxx/include/string_view @@ -278,7 +278,9 @@ public: // [string.view.access], element access _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY - const_reference operator[](size_type __pos) const _NOEXCEPT { return __data[__pos]; } + const_reference operator[](size_type __pos) const _NOEXCEPT { + return _LIBCPP_ASSERT(__pos < size(), "string_view[] index out of bounds"), __data[__pos]; + } _LIBCPP_CONSTEXPR _LIBCPP_INLINE_VISIBILITY const_reference at(size_type __pos) const -- 2.7.4