@@ -77,7 +77,7 @@ class common_iterator {
7777 requires convertible_to<const _I2&, _Iter> && convertible_to<const _S2&, _Sent>
7878 _LIBCPP_HIDE_FROM_ABI constexpr common_iterator (const common_iterator<_I2, _S2>& __other)
7979 : __hold_ ([&]() -> variant<_Iter, _Sent> {
80- _LIBCPP_ASSERT_UNCATEGORIZED (
80+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
8181 !__other.__hold_ .valueless_by_exception (), " Attempted to construct from a valueless common_iterator" );
8282 if (__other.__hold_ .index () == 0 )
8383 return variant<_Iter, _Sent>{in_place_index<0 >, std::__unchecked_get<0 >(__other.__hold_ )};
@@ -88,7 +88,7 @@ class common_iterator {
8888 requires convertible_to<const _I2&, _Iter> && convertible_to<const _S2&, _Sent> &&
8989 assignable_from<_Iter&, const _I2&> && assignable_from<_Sent&, const _S2&>
9090 _LIBCPP_HIDE_FROM_ABI common_iterator& operator =(const common_iterator<_I2, _S2>& __other) {
91- _LIBCPP_ASSERT_UNCATEGORIZED (
91+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
9292 !__other.__hold_ .valueless_by_exception (), " Attempted to assign from a valueless common_iterator" );
9393
9494 auto __idx = __hold_.index ();
@@ -110,15 +110,15 @@ class common_iterator {
110110 }
111111
112112 _LIBCPP_HIDE_FROM_ABI constexpr decltype (auto ) operator *() {
113- _LIBCPP_ASSERT_UNCATEGORIZED (
113+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
114114 std::holds_alternative<_Iter>(__hold_), " Attempted to dereference a non-dereferenceable common_iterator" );
115115 return *std::__unchecked_get<_Iter>(__hold_);
116116 }
117117
118118 _LIBCPP_HIDE_FROM_ABI constexpr decltype (auto ) operator *() const
119119 requires __dereferenceable<const _Iter>
120120 {
121- _LIBCPP_ASSERT_UNCATEGORIZED (
121+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
122122 std::holds_alternative<_Iter>(__hold_), " Attempted to dereference a non-dereferenceable common_iterator" );
123123 return *std::__unchecked_get<_Iter>(__hold_);
124124 }
@@ -129,7 +129,7 @@ class common_iterator {
129129 __i.operator ->();
130130 } || is_reference_v<iter_reference_t <_I2>> || constructible_from<iter_value_t <_I2>, iter_reference_t <_I2>>)
131131 {
132- _LIBCPP_ASSERT_UNCATEGORIZED (
132+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
133133 std::holds_alternative<_Iter>(__hold_), " Attempted to dereference a non-dereferenceable common_iterator" );
134134 if constexpr (is_pointer_v<_Iter> || requires (const _Iter& __i) { __i.operator ->(); }) {
135135 return std::__unchecked_get<_Iter>(__hold_);
@@ -142,14 +142,14 @@ class common_iterator {
142142 }
143143
144144 _LIBCPP_HIDE_FROM_ABI common_iterator& operator ++() {
145- _LIBCPP_ASSERT_UNCATEGORIZED (
145+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
146146 std::holds_alternative<_Iter>(__hold_), " Attempted to increment a non-dereferenceable common_iterator" );
147147 ++std::__unchecked_get<_Iter>(__hold_);
148148 return *this ;
149149 }
150150
151151 _LIBCPP_HIDE_FROM_ABI decltype (auto ) operator ++(int ) {
152- _LIBCPP_ASSERT_UNCATEGORIZED (
152+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
153153 std::holds_alternative<_Iter>(__hold_), " Attempted to increment a non-dereferenceable common_iterator" );
154154 if constexpr (forward_iterator<_Iter>) {
155155 auto __tmp = *this ;
@@ -170,9 +170,9 @@ class common_iterator {
170170 requires sentinel_for<_Sent, _I2>
171171 _LIBCPP_HIDE_FROM_ABI friend constexpr bool
172172 operator ==(const common_iterator& __x, const common_iterator<_I2, _S2>& __y) {
173- _LIBCPP_ASSERT_UNCATEGORIZED (
173+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
174174 !__x.__hold_ .valueless_by_exception (), " Attempted to compare a valueless common_iterator" );
175- _LIBCPP_ASSERT_UNCATEGORIZED (
175+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
176176 !__y.__hold_ .valueless_by_exception (), " Attempted to compare a valueless common_iterator" );
177177
178178 auto __x_index = __x.__hold_ .index ();
@@ -191,9 +191,9 @@ class common_iterator {
191191 requires sentinel_for<_Sent, _I2> && equality_comparable_with<_Iter, _I2>
192192 _LIBCPP_HIDE_FROM_ABI friend constexpr bool
193193 operator ==(const common_iterator& __x, const common_iterator<_I2, _S2>& __y) {
194- _LIBCPP_ASSERT_UNCATEGORIZED (
194+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
195195 !__x.__hold_ .valueless_by_exception (), " Attempted to compare a valueless common_iterator" );
196- _LIBCPP_ASSERT_UNCATEGORIZED (
196+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
197197 !__y.__hold_ .valueless_by_exception (), " Attempted to compare a valueless common_iterator" );
198198
199199 auto __x_index = __x.__hold_ .index ();
@@ -215,9 +215,9 @@ class common_iterator {
215215 requires sized_sentinel_for<_Sent, _I2>
216216 _LIBCPP_HIDE_FROM_ABI friend constexpr iter_difference_t <_I2>
217217 operator -(const common_iterator& __x, const common_iterator<_I2, _S2>& __y) {
218- _LIBCPP_ASSERT_UNCATEGORIZED (
218+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
219219 !__x.__hold_ .valueless_by_exception (), " Attempted to subtract from a valueless common_iterator" );
220- _LIBCPP_ASSERT_UNCATEGORIZED (
220+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
221221 !__y.__hold_ .valueless_by_exception (), " Attempted to subtract a valueless common_iterator" );
222222
223223 auto __x_index = __x.__hold_ .index ();
@@ -239,7 +239,7 @@ class common_iterator {
239239 iter_move (const common_iterator& __i) noexcept (noexcept (ranges::iter_move (std::declval<const _Iter&>())))
240240 requires input_iterator<_Iter>
241241 {
242- _LIBCPP_ASSERT_UNCATEGORIZED (
242+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
243243 std::holds_alternative<_Iter>(__i.__hold_ ), " Attempted to iter_move a non-dereferenceable common_iterator" );
244244 return ranges::iter_move (std::__unchecked_get<_Iter>(__i.__hold_ ));
245245 }
@@ -248,9 +248,9 @@ class common_iterator {
248248 _LIBCPP_HIDE_FROM_ABI friend constexpr void
249249 iter_swap (const common_iterator& __x, const common_iterator<_I2, _S2>& __y) noexcept (
250250 noexcept (ranges::iter_swap (std::declval<const _Iter&>(), std::declval<const _I2&>()))) {
251- _LIBCPP_ASSERT_UNCATEGORIZED (
251+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
252252 std::holds_alternative<_Iter>(__x.__hold_ ), " Attempted to iter_swap a non-dereferenceable common_iterator" );
253- _LIBCPP_ASSERT_UNCATEGORIZED (
253+ _LIBCPP_ASSERT_VALID_ELEMENT_ACCESS (
254254 std::holds_alternative<_I2>(__y.__hold_ ), " Attempted to iter_swap a non-dereferenceable common_iterator" );
255255 return ranges::iter_swap (std::__unchecked_get<_Iter>(__x.__hold_ ), std::__unchecked_get<_I2>(__y.__hold_ ));
256256 }
0 commit comments