Remove memcpy null pointer warnings in some gcc versions in release mode

This commit is contained in:
Ion Gaztañaga
2019-04-30 18:04:34 +02:00
parent 4c6bea0bc7
commit 909ccf6057

View File

@@ -177,8 +177,7 @@ inline F memmove(I f, I l, F r) BOOST_NOEXCEPT_OR_NOTHROW
value_type *const dest_raw = boost::movelib::iterator_to_raw_pointer(r); value_type *const dest_raw = boost::movelib::iterator_to_raw_pointer(r);
const value_type *const beg_raw = boost::movelib::iterator_to_raw_pointer(f); const value_type *const beg_raw = boost::movelib::iterator_to_raw_pointer(f);
const value_type *const end_raw = boost::movelib::iterator_to_raw_pointer(l); const value_type *const end_raw = boost::movelib::iterator_to_raw_pointer(l);
if(BOOST_LIKELY(beg_raw != end_raw)){ if(BOOST_LIKELY(beg_raw != end_raw && dest_raw && beg_raw)){
BOOST_ASSERT(beg_raw != 0);
const typename boost::container::iterator_traits<I>::difference_type n = end_raw - beg_raw; const typename boost::container::iterator_traits<I>::difference_type n = end_raw - beg_raw;
std::memmove(dest_raw, beg_raw, sizeof(value_type)*n); std::memmove(dest_raw, beg_raw, sizeof(value_type)*n);
boost::container::iterator_advance(r, n); boost::container::iterator_advance(r, n);