In file included from /usr/include/c++/8/vector:64, from /srv/mediawiki/php/wikidiff2/DiffEngine.h:10, from /srv/mediawiki/php/wikidiff2/Wikidiff2.h:12, from /srv/mediawiki/php/wikidiff2/php_wikidiff2.cpp:11: /usr/include/c++/8/bits/stl_vector.h: In instantiation of ‘class std::vector<DiffOp<Word>, PhpAllocator<Word> >’: /srv/mediawiki/php/wikidiff2/DiffEngine.h:108:16: required from ‘class Diff<Word>’ /srv/mediawiki/php/wikidiff2/DiffEngine.h:425:6: required from here /usr/include/c++/8/bits/stl_vector.h:354:21: error: static assertion failed: std::vector must have the same value_type as its allocator static_assert(is_same<typename _Alloc::value_type, _Tp>::value, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/8/bits/stl_vector.h: In instantiation of ‘class std::vector<DiffOp<std::__cxx11::basic_string<char, std::char_traits<char>, PhpAllocator<char> > >, PhpAllocator<std::__cxx11::basic_string<char, std::char_traits<char>, PhpAllocator<char> > > >’: /srv/mediawiki/php/wikidiff2/DiffEngine.h:108:16: required from ‘class Diff<std::__cxx11::basic_string<char, std::char_traits<char>, PhpAllocator<char> > >’ /srv/mediawiki/php/wikidiff2/Wikidiff2.h:91:30: required from here /usr/include/c++/8/bits/stl_vector.h:354:21: error: static assertion failed: std::vector must have the same value_type as its allocator In file included from /usr/include/c++/8/map:61, from /srv/mediawiki/php/wikidiff2/DiffEngine.h:11, from /srv/mediawiki/php/wikidiff2/Wikidiff2.h:12, from /srv/mediawiki/php/wikidiff2/php_wikidiff2.cpp:11: /usr/include/c++/8/bits/stl_map.h: In instantiation of ‘class std::map<Word, std::vector<int, PhpAllocator<int> >, std::less<Word>, PhpAllocator<std::vector<int, PhpAllocator<int> > > >’: /srv/mediawiki/php/wikidiff2/DiffEngine.h:454:13: required from ‘int DiffEngine<T>::diag(int, int, int, int, int, DiffEngine<T>::IntPairVector&) [with T = Word; DiffEngine<T>::IntPairVector = std::vector<std::pair<int, int>, PhpAllocator<std::pair<int, int> > >]’ /srv/mediawiki/php/wikidiff2/DiffEngine.h:607:9: required from ‘void DiffEngine<T>::compareseq(int, int, int, int) [with T = Word]’ /srv/mediawiki/php/wikidiff2/DiffEngine.h:355:2: required from ‘void DiffEngine<T>::diff(const ValueVector&, const ValueVector&, Diff<T>&, long long int) [with T = Word; DiffEngine<T>::ValueVector = std::vector<Word, PhpAllocator<Word> >]’ /srv/mediawiki/php/wikidiff2/DiffEngine.h:751:2: required from ‘Diff<T>::Diff(const ValueVector&, const ValueVector&, long long int) [with T = Word; Diff<T>::ValueVector = std::vector<Word, PhpAllocator<Word> >]’ /srv/mediawiki/php/wikidiff2/DiffEngine.h:762:51: required from here /usr/include/c++/8/bits/stl_map.h:122:21: error: static assertion failed: std::map must have the same value_type as its allocator static_assert(is_same<typename _Alloc::value_type, value_type>::value, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$ g++-8 --version g++-8 (Debian 8-20180425-1) 8.0.1 20180425 (experimental) [trunk revision 259628]
GCC8 changes: https://gcc.gnu.org/gcc-8/changes.html
Full build log is P7050, run on Debian unstable with PHP 7.2.4. Downstream report: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897887