diff --git a/stl/src/vector_algorithms.cpp b/stl/src/vector_algorithms.cpp index cb8bbbdbca0..d054b46fdfe 100644 --- a/stl/src/vector_algorithms.cpp +++ b/stl/src/vector_algorithms.cpp @@ -3730,7 +3730,8 @@ const void* __stdcall __std_find_trivial_unsized_8(const void* const _First, con const void* __stdcall __std_find_trivial_1( const void* const _First, const void* const _Last, const uint8_t _Val) noexcept { #ifdef _M_ARM64EC - return memchr(_First, _Val, _Byte_length(_First, _Last)); + auto _Result = memchr(_First, _Val, _Byte_length(_First, _Last)); + return _Result ? _Result : _Last; #else return _Finding::_Find_impl<_Finding::_Find_traits_1, _Finding::_Predicate::_Equal>(_First, _Last, _Val); #endif @@ -3739,7 +3740,8 @@ const void* __stdcall __std_find_trivial_1( const void* __stdcall __std_find_trivial_2( const void* const _First, const void* const _Last, const uint16_t _Val) noexcept { #ifdef _M_ARM64EC - return wmemchr(static_cast(_First), _Val, _Byte_length(_First, _Last) / sizeof(wchar_t)); + auto _Result = wmemchr(static_cast(_First), _Val, _Byte_length(_First, _Last) / sizeof(wchar_t)); + return _Result ? _Result : _Last; #else return _Finding::_Find_impl<_Finding::_Find_traits_2, _Finding::_Predicate::_Equal>(_First, _Last, _Val); #endif