================ @@ -428,50 +630,87 @@ _LIBCPP_CONSTEXPR_SINCE_CXX20 void __split_buffer<_Tp, _Allocator>::shrink_to_fi } } -template <class _Tp, class _Allocator> +// Need to use this because C++03 doesn't permit constexpr if :( +template <bool> +struct __maybe_update_sentinel; + +template <> +struct __maybe_update_sentinel<true> { + template <class _SplitBuffer, class _DifferenceType> + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI static void + __update_size(_SplitBuffer& __data, _DifferenceType __d) { + __data.__update_sentinel(__data.size() + __d); + } + + template <class _SplitBuffer> + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI static void __update_end(_SplitBuffer& __data) { + __data.update_sentinel(__data.end() + 1); + } +}; + +template <> +struct __maybe_update_sentinel<false> { + template <class _SplitBuffer, class _DifferenceType> + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI static void __update_size(_SplitBuffer&, _DifferenceType) {} + + template <class _SplitBuffer> + _LIBCPP_CONSTEXPR_SINCE_CXX20 _LIBCPP_HIDE_FROM_ABI static void __update_end(_SplitBuffer&) {} +}; ---------------- philnik777 wrote:
This looks like it should be part of the layout class. The whole point of that is that we have a uniform interface, which we apparently don't quite have. https://github.com/llvm/llvm-project/pull/139632 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits