summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch')
-rw-r--r--src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch b/src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch
deleted file mode 100644
index ad2d07f..0000000
--- a/src/3rdparty/open62541/patches/0001-fix-core-use-of-compound-volatile-operations-depreca.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 464966135e5cc7af30d9a3f6bdc81be937b95ac3 Mon Sep 17 00:00:00 2001
-From: Marc Mutz <marc.mutz@qt.io>
-Date: Fri, 1 Jul 2022 09:53:55 +0200
-Subject: [PATCH] fix(core): use of compound volatile operations (deprecated in
- C++20)
-
-C++20 deprecated compound volatile operations, so this code fails to
-compile in C++20 mode due to -Werror.
-
-Fix by separating loading and saving of the value, which, in the case
-of architecture_definitions.h, even reduces the per-operation loads
-from two to one.
-
-Fixes: #5247
----
- include/open62541/architecture_definitions.h | 24 +++++++++++++-------
- include/open62541/util.h | 2 +-
- 2 files changed, 17 insertions(+), 9 deletions(-)
-
-diff --git a/include/open62541/architecture_definitions.h b/include/open62541/architecture_definitions.h
-index f22f401d..15a21505 100644
---- a/include/open62541/architecture_definitions.h
-+++ b/include/open62541/architecture_definitions.h
-@@ -456,8 +456,10 @@ UA_atomic_addUInt32(volatile uint32_t *addr, uint32_t increase) {
- return __sync_add_and_fetch(addr, increase);
- #endif
- #else
-- *addr += increase;
-- return *addr;
-+ uint32_t accu = *addr;
-+ accu += increase;
-+ *addr = accu;
-+ return accu;
- #endif
- }
-
-@@ -470,8 +472,10 @@ UA_atomic_addSize(volatile size_t *addr, size_t increase) {
- return __sync_add_and_fetch(addr, increase);
- #endif
- #else
-- *addr += increase;
-- return *addr;
-+ size_t accu = *addr;
-+ accu += increase;
-+ *addr = accu;
-+ return accu;
- #endif
- }
-
-@@ -484,8 +488,10 @@ UA_atomic_subUInt32(volatile uint32_t *addr, uint32_t decrease) {
- return __sync_sub_and_fetch(addr, decrease);
- #endif
- #else
-- *addr -= decrease;
-- return *addr;
-+ uint32_t accu = *addr;
-+ accu -= decrease;
-+ *addr = accu;
-+ return accu;
- #endif
- }
-
-@@ -498,8 +504,10 @@ UA_atomic_subSize(volatile size_t *addr, size_t decrease) {
- return __sync_sub_and_fetch(addr, decrease);
- #endif
- #else
-- *addr -= decrease;
-- return *addr;
-+ size_t accu = *addr;
-+ accu -= decrease;
-+ *addr = accu;
-+ return accu;
- #endif
- }
-
-diff --git a/include/open62541/util.h b/include/open62541/util.h
-index 79e49f20..9f3b5fea 100644
---- a/include/open62541/util.h
-+++ b/include/open62541/util.h
-@@ -213,7 +213,7 @@ UA_constantTimeEqual(const void *ptr1, const void *ptr2, size_t length) {
- volatile UA_Byte c = 0;
- for(size_t i = 0; i < length; ++i) {
- UA_Byte x = a[i], y = b[i];
-- c |= x ^ y;
-+ c = c | (x ^ y);
- }
- return !c;
- }
---
-2.25.1
-