From c8a0f5dd75e9eb9e575ca1f3c44f2eec598d420e Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Tue, 23 Apr 2024 07:49:44 +0200 Subject: [PATCH] QAtomicScopedValueRollback: remove impossible constexpr Neither atomic::load() nor store() are contstexpr in the standard. The only reason this code compiled is because QASVR is a class template, so contexpr tags that can't be fulfilled are silently dropped at instantiation time by the compiler. Remove the tag to avoid giving readers the wrong idea. Reported-by: Thiago Macieira Change-Id: I6f23ab9fb2e8ceecaa45ffaef1fadbc7de266803 Reviewed-by: Thiago Macieira (cherry picked from commit c1f1523047b2e005fb7442847c2aa000faa7d0ac) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/tools/qatomicscopedvaluerollback.h | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/corelib/tools/qatomicscopedvaluerollback.h b/src/corelib/tools/qatomicscopedvaluerollback.h index 41e919a3c63..8f653acba5e 100644 --- a/src/corelib/tools/qatomicscopedvaluerollback.h +++ b/src/corelib/tools/qatomicscopedvaluerollback.h @@ -104,15 +104,12 @@ public: std::memory_order mo = std::memory_order_seq_cst) : QAtomicScopedValueRollback(var._q_value, value, mo) {} -#if __cpp_constexpr >= 201907L - constexpr -#endif ~QAtomicScopedValueRollback() { m_atomic.store(m_value, store_part(m_mo)); } - constexpr void commit() + void commit() { m_value = m_atomic.load(load_part(m_mo)); }