From 3624895204b6ec61425bbc72662fc90405b6113a Mon Sep 17 00:00:00 2001 From: zoraaver <55952569+zoraaver@users.noreply.github.com> Date: Wed, 25 Oct 2023 13:47:56 +0100 Subject: [PATCH] Fix windows compilation on C++20 (#2670) Since C++20, std::memory_order is defined as an enum class so requires explicit casting to an int when adding enum values. See https://en.cppreference.com/w/cpp/atomic/memory_order. --- core/shared/platform/windows/win_atomic.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/shared/platform/windows/win_atomic.cpp b/core/shared/platform/windows/win_atomic.cpp index 80e8ef518..4e09405bb 100644 --- a/core/shared/platform/windows/win_atomic.cpp +++ b/core/shared/platform/windows/win_atomic.cpp @@ -14,8 +14,8 @@ void bh_atomic_thread_fence(int mem_order) { std::memory_order order = - (std::memory_order)(std::memory_order::memory_order_relaxed + mem_order - - os_memory_order_relaxed); + (std::memory_order)((int)std::memory_order::memory_order_relaxed + + mem_order - os_memory_order_relaxed); std::atomic_thread_fence(order); }