diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-10-01 17:10:49 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2021-10-01 17:10:49 -0400 |
commit | 2e65e4834a226c570866f2e8976ed7f252b45cd1 (patch) | |
tree | 21d625bce8d03627680214df4a6622bf8eb79dc9 /gnu/packages/patches/rapidjson-gcc-compat.patch | |
parent | 9c68ecb24dd1660ce736cdcdea0422a73ec318a2 (diff) | |
parent | f1a3c11407b52004e523ec5de20d326c5661681f (diff) |
Merge remote-tracking branch 'origin/master' into staging
With resolved conflicts in:
gnu/packages/bittorrent.scm
gnu/packages/databases.scm
gnu/packages/geo.scm
gnu/packages/gnupg.scm
gnu/packages/gstreamer.scm
gnu/packages/gtk.scm
gnu/packages/linux.scm
gnu/packages/python-xyz.scm
gnu/packages/xorg.scm
guix/build/qt-utils.scm
Diffstat (limited to 'gnu/packages/patches/rapidjson-gcc-compat.patch')
-rw-r--r-- | gnu/packages/patches/rapidjson-gcc-compat.patch | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/packages/patches/rapidjson-gcc-compat.patch b/gnu/packages/patches/rapidjson-gcc-compat.patch index b5ffc0a908..8bfdb075d9 100644 --- a/gnu/packages/patches/rapidjson-gcc-compat.patch +++ b/gnu/packages/patches/rapidjson-gcc-compat.patch @@ -16,3 +16,51 @@ index 422a5240..d4039716 100644 #endif #ifdef _MSC_VER + +Cast destination pointers to avoid a GCC error about memmove writing to +a different type. + +Adapted from this upstream commit: +https://github.com/Tencent/rapidjson/commit/fa5963a2f5b231ee2babff771f169ccca22870ed + +diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h +--- a/include/rapidjson/document.h ++++ b/include/rapidjson/document.h +@@ -1425,7 +1425,7 @@ public: + MemberIterator pos = MemberBegin() + (first - MemberBegin()); + for (MemberIterator itr = pos; itr != last; ++itr) + itr->~Member(); +- std::memmove(&*pos, &*last, static_cast<size_t>(MemberEnd() - last) * sizeof(Member)); ++ std::memmove(static_cast<void*>(&*pos), &*last, static_cast<size_t>(MemberEnd() - last) * sizeof(Member)); + data_.o.size -= static_cast<SizeType>(last - first); + return pos; + } +@@ -1628,8 +1628,8 @@ public: + RAPIDJSON_ASSERT(last <= End()); + ValueIterator pos = Begin() + (first - Begin()); + for (ValueIterator itr = pos; itr != last; ++itr) +- itr->~GenericValue(); +- std::memmove(pos, last, static_cast<size_t>(End() - last) * sizeof(GenericValue)); ++ itr->~GenericValue(); ++ std::memmove(static_cast<void*>(pos), last, static_cast<size_t>(End() - last) * sizeof(GenericValue)); + data_.a.size -= static_cast<SizeType>(last - first); + return pos; + } +@@ -1936,7 +1936,7 @@ private: + if (count) { + GenericValue* e = static_cast<GenericValue*>(allocator.Malloc(count * sizeof(GenericValue))); + SetElementsPointer(e); +- std::memcpy(e, values, count * sizeof(GenericValue)); ++ std::memcpy(static_cast<void*>(e), values, count * sizeof(GenericValue)); + } + else + SetElementsPointer(0); +@@ -1949,7 +1949,7 @@ private: + if (count) { + Member* m = static_cast<Member*>(allocator.Malloc(count * sizeof(Member))); + SetMembersPointer(m); +- std::memcpy(m, members, count * sizeof(Member)); ++ std::memcpy(static_cast<void*>(m), members, count * sizeof(Member)); + } + else + SetMembersPointer(0); |