From 4b5b87c27b803c5bf0fed96c381c5e343b28d419 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Thu, 8 Sep 2022 16:46:13 +0200 Subject: [PATCH] Specialize qMulOverflow<2>(n) as qAddOverflow(n, n) Addition is always more efficient than multiplication. Pick-to: 6.4 Task-number: QTBUG-104972 Change-Id: Ib945e7df88562a2f4aea00aa319ff837191b8df2 Reviewed-by: Thiago Macieira Reviewed-by: Edward Welbourne --- src/corelib/global/qnumeric.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/corelib/global/qnumeric.h b/src/corelib/global/qnumeric.h index 9ecbbc712a3..7779c03515b 100644 --- a/src/corelib/global/qnumeric.h +++ b/src/corelib/global/qnumeric.h @@ -317,6 +317,8 @@ template bool qMulOverflow(T v1, std::integral_constant bool qMulOverflow(T v1, T *r) { + if constexpr (V2 == 2) + return qAddOverflow(v1, v1, r); return qMulOverflow(v1, std::integral_constant{}, r); }