!33 sync:Volatile is deprecated in C++20
From: @zhangzhangxin Reviewed-by: @Charlie_li Signed-off-by: @Charlie_li
This commit is contained in:
commit
ab58083b0f
33
0005-sync-Fix-c-20-compilation-problem-for-clang10.patch
Normal file
33
0005-sync-Fix-c-20-compilation-problem-for-clang10.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From 98361556e6ad47f4edb1f3615341ba4b6f3ff552 Mon Sep 17 00:00:00 2001
|
||||||
|
From: zhangzhangxin <zhangxin1@xfusion.com>
|
||||||
|
Date: Fri, 12 May 2023 09:52:03 +0800
|
||||||
|
Subject: [PATCH] sync:Fix c++20 compilation problem for clang10 and fix
|
||||||
|
potential bug due to compiler optimization
|
||||||
|
|
||||||
|
Signed-off-by: zhangzhangxin <zhangxin1@xfusion.com>
|
||||||
|
---
|
||||||
|
include/json/allocator.h | 7 +++----
|
||||||
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/include/json/allocator.h b/include/json/allocator.h
|
||||||
|
index 0f5c224..95ef8a5 100644
|
||||||
|
--- a/include/json/allocator.h
|
||||||
|
+++ b/include/json/allocator.h
|
||||||
|
@@ -35,11 +35,10 @@ public:
|
||||||
|
* Release memory which was allocated for N items at pointer P.
|
||||||
|
*
|
||||||
|
* The memory block is filled with zeroes before being released.
|
||||||
|
- * The pointer argument is tagged as "volatile" to prevent the
|
||||||
|
- * compiler optimizing out this critical step.
|
||||||
|
*/
|
||||||
|
- void deallocate(volatile pointer p, size_type n) {
|
||||||
|
- std::memset(p, 0, n * sizeof(T));
|
||||||
|
+ void deallocate(pointer p, size_type n) {
|
||||||
|
+ // memset_s is used because memset may be optimized away by the compiler
|
||||||
|
+ memset_s(p, n * sizeof(T), 0, n * sizeof(T));
|
||||||
|
// free using "global operator delete"
|
||||||
|
::operator delete(p);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.40.0.windows.1
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
Name: jsoncpp
|
Name: jsoncpp
|
||||||
Version: 1.9.3
|
Version: 1.9.3
|
||||||
Release: 6
|
Release: 7
|
||||||
Summary: JSON C++ library
|
Summary: JSON C++ library
|
||||||
License: Public Domain or MIT
|
License: Public Domain or MIT
|
||||||
URL: https://github.com/open-source-parsers/jsoncpp
|
URL: https://github.com/open-source-parsers/jsoncpp
|
||||||
@ -10,6 +10,7 @@ Patch0: 0001-sync-Issue-1182-Fix-fuzzing-bug.patch
|
|||||||
Patch1: 0002-sync-avoid-isprint-because-it-is-locale-specific.patch
|
Patch1: 0002-sync-avoid-isprint-because-it-is-locale-specific.patch
|
||||||
Patch2: 0003-sync-Add-nullptr-Json-Value-constructor.patch
|
Patch2: 0003-sync-Add-nullptr-Json-Value-constructor.patch
|
||||||
Patch3: 0004-sync-Fix-generation-of-pkg-config-file-with-absolute.patch
|
Patch3: 0004-sync-Fix-generation-of-pkg-config-file-with-absolute.patch
|
||||||
|
Patch4: 0005-sync-Fix-c-20-compilation-problem-for-clang10.patch
|
||||||
|
|
||||||
%description
|
%description
|
||||||
JsonCpp is a C++ library that allows manipulating JSON values,
|
JsonCpp is a C++ library that allows manipulating JSON values,
|
||||||
@ -91,6 +92,9 @@ hardlink -cfv %{buildroot}%{_docdir}/%{name}
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri May 12 2023 zhangxin <zhangxin1@xfusion.com> - 1.9.3-7
|
||||||
|
- Fix c++20 compilation problem for clang10 and fix potential bug due to compiler optimization
|
||||||
|
|
||||||
* Fri Apr 28 2023 zhangxin <zhangxin1@xfusion.com> - 1.9.3-6
|
* Fri Apr 28 2023 zhangxin <zhangxin1@xfusion.com> - 1.9.3-6
|
||||||
- Fix generation of pkg-config file with absolute includedir/libdir.
|
- Fix generation of pkg-config file with absolute includedir/libdir.
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user