From 65794fd2b8fd05c2d5524acf44bc9ac2bad19d97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Fri, 12 Apr 2024 15:20:08 +0200 Subject: [PATCH] Fix ARM64 windows builds Apparently I looked at the docs for umulh when checking availability, and umul128 is x64 only. --- src/catch2/internal/catch_random_integer_helpers.hpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/catch2/internal/catch_random_integer_helpers.hpp b/src/catch2/internal/catch_random_integer_helpers.hpp index 10d82559..5a94eb70 100644 --- a/src/catch2/internal/catch_random_integer_helpers.hpp +++ b/src/catch2/internal/catch_random_integer_helpers.hpp @@ -21,7 +21,10 @@ // it, and it provides an escape hatch to the users who need it. #if defined( __SIZEOF_INT128__ ) # define CATCH_CONFIG_INTERNAL_UINT128 -#elif defined( _MSC_VER ) && ( defined( _WIN64 ) || defined( _M_ARM64 ) ) +// Unlike GCC, MSVC does not polyfill umul as mulh + mul pair on ARM machines. +// Currently we do not bother doing this ourselves, but we could if it became +// important for perf. +#elif defined( _MSC_VER ) && defined( _WIN64 ) # define CATCH_CONFIG_INTERNAL_MSVC_UMUL128 #endif