cmake: Enable -Wshorten-64-to-32 for C++ sources.
Silence the last warnings in warp_filter_test_util.cc and
enable the warning.
Change-Id: I15f3807c02a28b8a76d372b31c76e5499c8b1df3
diff --git a/build/cmake/aom_configure.cmake b/build/cmake/aom_configure.cmake
index 253bad5..8589b75 100644
--- a/build/cmake/aom_configure.cmake
+++ b/build/cmake/aom_configure.cmake
@@ -275,6 +275,7 @@
add_compiler_flag_if_supported("-Wimplicit-function-declaration")
add_compiler_flag_if_supported("-Wlogical-op")
add_compiler_flag_if_supported("-Wpointer-arith")
+ add_compiler_flag_if_supported("-Wshorten-64-to-32")
add_compiler_flag_if_supported("-Wsign-compare")
add_compiler_flag_if_supported("-Wstring-conversion")
add_compiler_flag_if_supported("-Wtype-limits")
@@ -297,10 +298,6 @@
add_cxx_flag_if_supported("-Wstack-usage=240000")
endif()
- # TODO(jzern): this could be added as a cxx flags for test/*.cc only, avoiding
- # third_party.
- add_c_flag_if_supported("-Wshorten-64-to-32")
-
# Add -Wshadow only for C files to avoid massive gtest warning spam.
add_c_flag_if_supported("-Wshadow")
diff --git a/test/warp_filter_test_util.cc b/test/warp_filter_test_util.cc
index 91d040a..3ea8390 100644
--- a/test/warp_filter_test_util.cc
+++ b/test/warp_filter_test_util.cc
@@ -55,8 +55,9 @@
if (is_beta_zero == 1) mat[3] = 0;
if (is_gamma_zero == 1) mat[4] = 0;
if (is_delta_zero == 1)
- mat[5] = (((int64_t)mat[3] * mat[4] + (mat[2] / 2)) / mat[2]) +
- (1 << WARPEDMODEL_PREC_BITS);
+ mat[5] = static_cast<int32_t>(
+ ((static_cast<int64_t>(mat[3]) * mat[4] + (mat[2] / 2)) / mat[2]) +
+ (1 << WARPEDMODEL_PREC_BITS));
}
// Calculate the derived parameters and check that they are suitable
@@ -65,12 +66,14 @@
*alpha = clamp(mat[2] - (1 << WARPEDMODEL_PREC_BITS), INT16_MIN, INT16_MAX);
*beta = clamp(mat[3], INT16_MIN, INT16_MAX);
- *gamma = clamp(((int64_t)mat[4] * (1 << WARPEDMODEL_PREC_BITS)) / mat[2],
- INT16_MIN, INT16_MAX);
- *delta =
- clamp(mat[5] - (((int64_t)mat[3] * mat[4] + (mat[2] / 2)) / mat[2]) -
- (1 << WARPEDMODEL_PREC_BITS),
- INT16_MIN, INT16_MAX);
+ *gamma = static_cast<int16_t>(clamp64(
+ (static_cast<int64_t>(mat[4]) * (1 << WARPEDMODEL_PREC_BITS)) / mat[2],
+ INT16_MIN, INT16_MAX));
+ *delta = static_cast<int16_t>(clamp64(
+ mat[5] -
+ ((static_cast<int64_t>(mat[3]) * mat[4] + (mat[2] / 2)) / mat[2]) -
+ (1 << WARPEDMODEL_PREC_BITS),
+ INT16_MIN, INT16_MAX));
if ((4 * abs(*alpha) + 7 * abs(*beta) >= (1 << WARPEDMODEL_PREC_BITS)) ||
(4 * abs(*gamma) + 4 * abs(*delta) >= (1 << WARPEDMODEL_PREC_BITS)))