From 12e3fb6a6cb601c58d39ed54253e6e50f1513ccc Mon Sep 17 00:00:00 2001 From: Jiaming Yuan Date: Thu, 13 Aug 2020 08:25:46 +0800 Subject: [PATCH] Remove warning about memset. (#6003) --- src/common/hist_util.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/common/hist_util.cc b/src/common/hist_util.cc index efd62d701..7f4912317 100644 --- a/src/common/hist_util.cc +++ b/src/common/hist_util.cc @@ -500,13 +500,13 @@ void GHistIndexBlockMatrix::Init(const GHistIndexMatrix& gmat, */ template void InitilizeHistByZeroes(GHistRow hist, size_t begin, size_t end) { -#if defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 - std::fill(hist.begin() + begin, hist.begin() + end, - xgboost::detail::GradientPairInternal()); -#else // defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 - memset(hist.data() + begin, '\0', (end-begin)* + static_assert(sizeof(xgboost::detail::GradientPairInternal) % + sizeof(GradientSumT) == + 0, + ""); + auto p_data = reinterpret_cast(hist.data()); + memset(p_data + begin, '\0', (end-begin)* sizeof(xgboost::detail::GradientPairInternal)); -#endif // defined(XGBOOST_STRICT_R_MODE) && XGBOOST_STRICT_R_MODE == 1 } template void InitilizeHistByZeroes(GHistRow hist, size_t begin, size_t end);