diff --git a/src/Derivative.cpp b/src/Derivative.cpp index 49d86fe51528..d4f7fa1a2492 100644 --- a/src/Derivative.cpp +++ b/src/Derivative.cpp @@ -1816,8 +1816,8 @@ void ReverseAccumulationVisitor::propagate_halide_function_call( } // If previous update has a different set of reduction variables, // don't merge - const vector &rvars = - func_to_update.function().update(update_id).schedule().rvars(); + Function func = func_to_update.function(); + const vector &rvars = func.update(update_id).schedule().rvars(); if (!merged_r.defined()) { return rvars.empty(); } diff --git a/src/runtime/HalideBuffer.h b/src/runtime/HalideBuffer.h index 8a437d24ea48..768b5df89fc9 100644 --- a/src/runtime/HalideBuffer.h +++ b/src/runtime/HalideBuffer.h @@ -1431,23 +1431,23 @@ class Buffer { // into a static dispatch to the right-sized copy.) if (T_is_void ? (type().bytes() == 1) : (sizeof(not_void_T) == 1)) { using MemType = uint8_t; - auto &typed_dst = (Buffer &)dst; - auto &typed_src = (Buffer &)src; + auto &typed_dst = reinterpret_cast &>(dst); + auto &typed_src = reinterpret_cast &>(src); typed_dst.for_each_value([&](MemType &dst, MemType src) { dst = src; }, typed_src); } else if (T_is_void ? (type().bytes() == 2) : (sizeof(not_void_T) == 2)) { using MemType = uint16_t; - auto &typed_dst = (Buffer &)dst; - auto &typed_src = (Buffer &)src; + auto &typed_dst = reinterpret_cast &>(dst); + auto &typed_src = reinterpret_cast &>(src); typed_dst.for_each_value([&](MemType &dst, MemType src) { dst = src; }, typed_src); } else if (T_is_void ? (type().bytes() == 4) : (sizeof(not_void_T) == 4)) { using MemType = uint32_t; - auto &typed_dst = (Buffer &)dst; - auto &typed_src = (Buffer &)src; + auto &typed_dst = reinterpret_cast &>(dst); + auto &typed_src = reinterpret_cast &>(src); typed_dst.for_each_value([&](MemType &dst, MemType src) { dst = src; }, typed_src); } else if (T_is_void ? (type().bytes() == 8) : (sizeof(not_void_T) == 8)) { using MemType = uint64_t; - auto &typed_dst = (Buffer &)dst; - auto &typed_src = (Buffer &)src; + auto &typed_dst = reinterpret_cast &>(dst); + auto &typed_src = reinterpret_cast &>(src); typed_dst.for_each_value([&](MemType &dst, MemType src) { dst = src; }, typed_src); } else { assert(false && "type().bytes() must be 1, 2, 4, or 8");