forked from ni/meta-openembedded
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The following issue and PR describe an issue with nlohmann-json and GCC10. nlohmann/json#1920 nlohmann/json#2034 Confirmed that this fixed the issue seen in OpenBMC when pulling in the latest upstream meta-openembedded. Signed-off-by: Khem Raj <[email protected]> (cherry picked from commit 12b707c) Signed-off-by: Armin Kuster <[email protected]>
- Loading branch information
1 parent
e811d99
commit b64b916
Showing
3 changed files
with
146 additions
and
1 deletion.
There are no files selected for viewing
99 changes: 99 additions & 0 deletions
99
...-devtools/nlohmann-json/nlohmann-json/0001-Templatize-basic_json-ctor-from-json_ref.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
From ec955f08b47ab7cb81f6e4a4c3e7b331ddf50f71 Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Art=C3=B6m=20Bakri=20Al-Sarmini?= <[email protected]> | ||
Date: Sun, 12 Apr 2020 22:32:39 +0300 | ||
Subject: [PATCH] Templatize basic_json ctor from json_ref | ||
|
||
Upstream-Status: Backport [https://github.com/nlohmann/json/commit/ec955f08b47ab7cb81f6e4a4c3e7b331ddf50f71] | ||
Signed-off-by: Andrew Geissler <[email protected]> | ||
|
||
--- | ||
include/nlohmann/detail/meta/type_traits.hpp | 13 ++++++++++++ | ||
include/nlohmann/json.hpp | 8 ++++---- | ||
single_include/nlohmann/json.hpp | 21 ++++++++++++++++---- | ||
3 files changed, 34 insertions(+), 8 deletions(-) | ||
|
||
diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp | ||
index 280f6953..dd0b3084 100644 | ||
--- a/include/nlohmann/detail/meta/type_traits.hpp | ||
+++ b/include/nlohmann/detail/meta/type_traits.hpp | ||
@@ -41,6 +41,19 @@ template<typename> struct is_basic_json : std::false_type {}; | ||
NLOHMANN_BASIC_JSON_TPL_DECLARATION | ||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; | ||
|
||
+////////////////////// | ||
+// jspn_ref helpers // | ||
+////////////////////// | ||
+ | ||
+template <typename> | ||
+class json_ref; | ||
+ | ||
+template<typename> | ||
+struct is_json_ref : std::false_type {}; | ||
+ | ||
+template <typename T> | ||
+struct is_json_ref<json_ref<T>> : std::true_type {}; | ||
+ | ||
////////////////////////// | ||
// aliases for detected // | ||
////////////////////////// | ||
diff --git a/include/nlohmann/json.hpp b/include/nlohmann/json.hpp | ||
index 336d69fe..0598efc8 100644 | ||
--- a/include/nlohmann/json.hpp | ||
+++ b/include/nlohmann/json.hpp | ||
@@ -1773,10 +1773,10 @@ class basic_json | ||
// other constructors and destructor // | ||
/////////////////////////////////////// | ||
|
||
- /// @private | ||
- basic_json(const detail::json_ref<basic_json>& ref) | ||
- : basic_json(ref.moved_or_copied()) | ||
- {} | ||
+ template <typename JsonRef, | ||
+ detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>, | ||
+ std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 > | ||
+ basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {} | ||
|
||
/*! | ||
@brief copy constructor | ||
diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp | ||
index 09464f3b..8927180e 100644 | ||
--- a/single_include/nlohmann/json.hpp | ||
+++ b/single_include/nlohmann/json.hpp | ||
@@ -2794,6 +2794,19 @@ template<typename> struct is_basic_json : std::false_type {}; | ||
NLOHMANN_BASIC_JSON_TPL_DECLARATION | ||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; | ||
|
||
+////////////////////// | ||
+// jspn_ref helpers // | ||
+////////////////////// | ||
+ | ||
+template <typename> | ||
+class json_ref; | ||
+ | ||
+template<typename> | ||
+struct is_json_ref : std::false_type {}; | ||
+ | ||
+template <typename T> | ||
+struct is_json_ref<json_ref<T>> : std::true_type {}; | ||
+ | ||
////////////////////////// | ||
// aliases for detected // | ||
////////////////////////// | ||
@@ -16632,10 +16645,10 @@ class basic_json | ||
// other constructors and destructor // | ||
/////////////////////////////////////// | ||
|
||
- /// @private | ||
- basic_json(const detail::json_ref<basic_json>& ref) | ||
- : basic_json(ref.moved_or_copied()) | ||
- {} | ||
+ template <typename JsonRef, | ||
+ detail::enable_if_t<detail::conjunction<detail::is_json_ref<JsonRef>, | ||
+ std::is_same<typename JsonRef::value_type, basic_json>>::value, int> = 0 > | ||
+ basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {} | ||
|
||
/*! | ||
@brief copy constructor | ||
-- | ||
2.21.0 (Apple Git-122) | ||
|
43 changes: 43 additions & 0 deletions
43
meta-oe/recipes-devtools/nlohmann-json/nlohmann-json/0001-typo-fix.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
From 70be9751cd60e622ce6463f41d47c02fc2d83cbc Mon Sep 17 00:00:00 2001 | ||
From: =?UTF-8?q?Art=C3=B6m=20Bakri=20Al-Sarmini?= <[email protected]> | ||
Date: Sun, 12 Apr 2020 23:42:26 +0300 | ||
Subject: [PATCH] typo fix | ||
|
||
Upstream-Status: Backport [https://github.com/nlohmann/json/commit/70be9751cd60e622ce6463f41d47c02fc2d83cbc] | ||
|
||
Signed-off-by: Andrew Geissler <[email protected]> | ||
|
||
--- | ||
include/nlohmann/detail/meta/type_traits.hpp | 2 +- | ||
single_include/nlohmann/json.hpp | 2 +- | ||
2 files changed, 2 insertions(+), 2 deletions(-) | ||
|
||
diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp | ||
index dd0b3084..13e92cb4 100644 | ||
--- a/include/nlohmann/detail/meta/type_traits.hpp | ||
+++ b/include/nlohmann/detail/meta/type_traits.hpp | ||
@@ -42,7 +42,7 @@ NLOHMANN_BASIC_JSON_TPL_DECLARATION | ||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; | ||
|
||
////////////////////// | ||
-// jspn_ref helpers // | ||
+// json_ref helpers // | ||
////////////////////// | ||
|
||
template <typename> | ||
diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp | ||
index 8927180e..294e7509 100644 | ||
--- a/single_include/nlohmann/json.hpp | ||
+++ b/single_include/nlohmann/json.hpp | ||
@@ -2795,7 +2795,7 @@ NLOHMANN_BASIC_JSON_TPL_DECLARATION | ||
struct is_basic_json<NLOHMANN_BASIC_JSON_TPL> : std::true_type {}; | ||
|
||
////////////////////// | ||
-// jspn_ref helpers // | ||
+// json_ref helpers // | ||
////////////////////// | ||
|
||
template <typename> | ||
-- | ||
2.21.0 (Apple Git-122) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters