office-gobmx/external/breakpad/c++20-allocator.patch

12 lines
406 B
Diff
Raw Normal View History

external/breakpad: Adapt to std::allocator parts removed in C++20 <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0174r2.html#4.2> "Deprecating Vestigial Library Parts in C++17" deprecated, among others, std::allocator::pointer, and <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p0619r4.html#3.9> "Reviewing Deprecated Facilities of C++17 for C++20" removed it completely. (And <https://gcc.gnu.org/git/?p=gcc.git;a=commit; h=954026a7a4e6a1affd1ac5db237ccd75a3316760> "Remove redundant std::allocator members for C++20" removed it from libstdc++ now for -std=c++2a.) The change to src/common/memory.h was necessary in Library_crashreport: > In file included from workdir/UnpackedTarball/breakpad/src/client/linux/dump_writer_common/thread_info.h:37, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:51, > from workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/minidump_writer.h:41, > from workdir/UnpackedTarball/breakpad/src/client/linux/handler/exception_handler.h:42, > from desktop/source/app/crashreport.cxx:29: > workdir/UnpackedTarball/breakpad/src/common/memory.h: In instantiation of ‘struct google_breakpad::PageStdAllocator<int>’: > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:84:21: required from ‘struct std::__cxx1998::_Vector_base<int, google_breakpad::PageStdAllocator<int> >’ > gcc/trunk/inst/include/c++/10.0.0/bits/stl_vector.h:386:11: required from ‘class std::__cxx1998::vector<int, google_breakpad::PageStdAllocator<int> >’ > gcc/trunk/inst/include/c++/10.0.0/debug/vector:118:11: required from ‘class std::__debug::vector<int, google_breakpad::PageStdAllocator<int> >’ > workdir/UnpackedTarball/breakpad/src/common/memory.h:197:7: required from ‘class google_breakpad::wasteful_vector<int>’ > workdir/UnpackedTarball/breakpad/src/client/linux/minidump_writer/linux_dumper.h:187:26: required from here > workdir/UnpackedTarball/breakpad/src/common/memory.h:165:47: error: no type named ‘pointer’ in ‘class std::allocator<int>’ > 165 | typedef typename std::allocator<T>::pointer pointer; > | ^~~~~~~ Change-Id: Id7559456cc75311837aaa9f3a531f8820d5f593d Reviewed-on: https://gerrit.libreoffice.org/81585 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-28 03:26:41 -05:00
--- src/common/memory.h
+++ src/common/memory.h
@@ -162,7 +162,7 @@
// Wrapper to use with STL containers
template <typename T>
struct PageStdAllocator : public std::allocator<T> {
- typedef typename std::allocator<T>::pointer pointer;
+ typedef T* pointer;
typedef typename std::allocator<T>::size_type size_type;
explicit PageStdAllocator(PageAllocator& allocator): allocator_(allocator) {}