[libcxx-commits] [libcxx] [libc++] Fix strict aliasing violation for `deque::const_iterator` (PR #136067)

Nikolas Klauser via libcxx-commits libcxx-commits at lists.llvm.org
Mon Dec 15 02:47:15 PST 2025


================
@@ -441,6 +463,11 @@ private:
       : __m_iter_(__m),
         __ptr_(__p) {}
 
+  template <bool _IsSamePointer = is_same<_MapPointer, __map_iterator>::value, __enable_if_t<!_IsSamePointer, int> = 0>
+  _LIBCPP_HIDE_FROM_ABI explicit __deque_iterator(_MapPointer __m, pointer __p) _NOEXCEPT
+      : __m_iter_(__m ? pointer_traits<__map_iterator>::pointer_to(*__m) : nullptr),
----------------
philnik777 wrote:

This is currently potentially dereferencing a one-past-the-end pointer, which is UB.

https://github.com/llvm/llvm-project/pull/136067


More information about the libcxx-commits mailing list