From 68975e3ff3a9d026965ad142b04f548e685b5095 Mon Sep 17 00:00:00 2001 From: Rob Boehne Date: Thu, 21 Jan 2021 15:50:49 -0600 Subject: [PATCH] [Issue 2154] Correct error when building with IBM's latest XLC (#2155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [Issue 2154] Correct error when building with IBM's latest XLC compiler with xlclang++ front-end. On AIX, the XLC 16.1.0.1 compiler considers the call to `std::abs` ambigious, so it needs help with a static_cast to the type of the template argument. Co-authored-by: Martin Hořeňovský --- include/internal/catch_matchers_floating.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/internal/catch_matchers_floating.cpp b/include/internal/catch_matchers_floating.cpp index bcca0725..6fefe987 100644 --- a/include/internal/catch_matchers_floating.cpp +++ b/include/internal/catch_matchers_floating.cpp @@ -55,7 +55,8 @@ namespace { return lhs == rhs; } - auto ulpDiff = std::abs(lc - rc); + // static cast as a workaround for IBM XLC + auto ulpDiff = std::abs(static_cast(lc - rc)); return static_cast(ulpDiff) <= maxUlpDiff; } @@ -234,4 +235,3 @@ Floating::WithinRelMatcher WithinRel(float target) { } // namespace Matchers } // namespace Catch -