From 41c1517ed4df305dcb391f545a418be30983becc Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Mon, 22 Feb 2021 23:43:33 +0000 Subject: Fix range checking of a value on a given data-type range Avoid using the casted values for range checking as this always resolves to true. Rather use the pure value passed to the function. Signed-off-by: Georgios Pinitas Change-Id: I2de24807be0304b62676f4e5358a6aacb654bd31 Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/5154 Reviewed-by: Michele Di Giorgio Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins --- arm_compute/core/Utils.h | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arm_compute/core/Utils.h b/arm_compute/core/Utils.h index e2c1ba938b..19ed73781e 100644 --- a/arm_compute/core/Utils.h +++ b/arm_compute/core/Utils.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020 Arm Limited. + * Copyright (c) 2016-2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -1303,7 +1303,7 @@ bool check_value_range(T val, DataType dt, QuantizationInfo qinfo = Quantization case DataType::U8: { const auto val_u8 = static_cast(val); - return ((val_u8 == val) && val_u8 >= std::numeric_limits::lowest() && val_u8 <= std::numeric_limits::max()); + return ((val_u8 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::QASYMM8: { @@ -1314,27 +1314,27 @@ bool check_value_range(T val, DataType dt, QuantizationInfo qinfo = Quantization case DataType::S8: { const auto val_s8 = static_cast(val); - return ((val_s8 == val) && val_s8 >= std::numeric_limits::lowest() && val_s8 <= std::numeric_limits::max()); + return ((val_s8 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::U16: { const auto val_u16 = static_cast(val); - return ((val_u16 == val) && val_u16 >= std::numeric_limits::lowest() && val_u16 <= std::numeric_limits::max()); + return ((val_u16 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::S16: { const auto val_s16 = static_cast(val); - return ((val_s16 == val) && val_s16 >= std::numeric_limits::lowest() && val_s16 <= std::numeric_limits::max()); + return ((val_s16 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::U32: { const auto val_u32 = static_cast(val); - return ((val_u32 == val) && val_u32 >= std::numeric_limits::lowest() && val_u32 <= std::numeric_limits::max()); + return ((val_u32 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::S32: { const auto val_s32 = static_cast(val); - return ((val_s32 == val) && val_s32 >= std::numeric_limits::lowest() && val_s32 <= std::numeric_limits::max()); + return ((val_s32 == val) && val >= std::numeric_limits::lowest() && val <= std::numeric_limits::max()); } case DataType::BFLOAT16: return (val >= bfloat16::lowest() && val <= bfloat16::max()); -- cgit v1.2.1