From 8037b8ec6e5c126f828f7746a4d297f7ef259ff6 Mon Sep 17 00:00:00 2001 From: Marshall Clow Date: Thu, 12 Feb 2015 19:58:06 +0000 Subject: [PATCH] Fixed a problem that UBSAN found, where we were calling memcmp(null, p, 0) - which is undefined behavior llvm-svn: 228952 --- libcxx/include/experimental/string_view | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcxx/include/experimental/string_view b/libcxx/include/experimental/string_view index d423f39..d9593df 100644 --- a/libcxx/include/experimental/string_view +++ b/libcxx/include/experimental/string_view @@ -375,7 +375,7 @@ _LIBCPP_BEGIN_NAMESPACE_LFTS _LIBCPP_CONSTEXPR_AFTER_CXX11 int compare(basic_string_view __sv) const _NOEXCEPT { size_type __rlen = _VSTD::min( size(), __sv.size()); - int __retval = _Traits::compare(data(), __sv.data(), __rlen); + int __retval = __rlen == 0 ? 0 : _Traits::compare(data(), __sv.data(), __rlen); if ( __retval == 0 ) // first __rlen chars matched __retval = size() == __sv.size() ? 0 : ( size() < __sv.size() ? -1 : 1 ); return __retval; -- 2.7.4