--- cereal-1.2.2/include/cereal/archives/json.hpp.orig 2018-10-23 22:51:17.492949400 +0300 +++ cereal-1.2.2/include/cereal/archives/json.hpp 2018-10-23 22:51:53.806026400 +0300 @@ -209,11 +209,13 @@ { case NodeType::StartArray: itsWriter.StartArray(); + break; case NodeType::InArray: itsWriter.EndArray(); break; case NodeType::StartObject: itsWriter.StartObject(); + break; case NodeType::InObject: itsWriter.EndObject(); break; --- cereal-1.2.2/include/cereal/external/rapidjson/document.h.orig 2018-10-23 22:54:53.144283900 +0300 +++ cereal-1.2.2/include/cereal/external/rapidjson/document.h 2018-10-23 22:56:47.544827300 +0300 @@ -1425,7 +1425,7 @@ MemberIterator pos = MemberBegin() + (first - MemberBegin()); for (MemberIterator itr = pos; itr != last; ++itr) itr->~Member(); - std::memmove(&*pos, &*last, static_cast(MemberEnd() - last) * sizeof(Member)); + std::memmove(static_cast(&*pos), &*last, static_cast(MemberEnd() - last) * sizeof(Member)); data_.o.size -= static_cast(last - first); return pos; } @@ -1629,7 +1629,7 @@ ValueIterator pos = Begin() + (first - Begin()); for (ValueIterator itr = pos; itr != last; ++itr) itr->~GenericValue(); - std::memmove(pos, last, static_cast(End() - last) * sizeof(GenericValue)); + std::memmove(static_cast(pos), last, static_cast(End() - last) * sizeof(GenericValue)); data_.a.size -= static_cast(last - first); return pos; } @@ -1936,7 +1936,7 @@ if (count) { GenericValue* e = static_cast(allocator.Malloc(count * sizeof(GenericValue))); SetElementsPointer(e); - std::memcpy(e, values, count * sizeof(GenericValue)); + std::memcpy(static_cast(e), values, count * sizeof(GenericValue)); } else SetElementsPointer(0); @@ -1949,7 +1949,7 @@ if (count) { Member* m = static_cast(allocator.Malloc(count * sizeof(Member))); SetMembersPointer(m); - std::memcpy(m, members, count * sizeof(Member)); + std::memcpy(static_cast(m), members, count * sizeof(Member)); } else SetMembersPointer(0); --- cereal-1.2.2/include/cereal/types/memory.hpp.orig 2018-10-23 22:57:31.005313100 +0300 +++ cereal-1.2.2/include/cereal/types/memory.hpp 2018-10-23 22:57:52.474541000 +0300 @@ -145,7 +145,7 @@ itsState(), itsRestored( false ) { - std::memcpy( &itsState, itsPtr, sizeof(ParentType) ); + std::memcpy( static_cast(&itsState), itsPtr, sizeof(ParentType) ); } //! Restores the state of the held pointer (can only be done once) @@ -153,7 +153,7 @@ { if( !itsRestored ) { - std::memcpy( itsPtr, &itsState, sizeof(ParentType) ); + std::memcpy( static_cast(itsPtr), &itsState, sizeof(ParentType) ); itsRestored = true; } } --- cereal-1.2.2/unittests/doctest.h.orig 2018-10-23 23:02:41.789088900 +0300 +++ cereal-1.2.2/unittests/doctest.h 2018-10-23 23:04:38.035737800 +0300 @@ -1288,7 +1288,7 @@ __FILE__, __LINE__, #expr, #as); \ try { \ expr; \ - } catch(as) { \ + } catch(as&) { \ _DOCTEST_RB.m_threw = true; \ _DOCTEST_RB.m_threw_as = true; \ } catch(...) { _DOCTEST_RB.m_threw = true; } \