Bug#1143707: sparsehash: FTBFS: ./src/sparsehash/sparsetable:1365:53: error: no class template named 'rebind' in 'class std::allocator<int>'

Santiago Vila <[email protected]> Wed, 05 Aug 2026 11:25:32 +0000
Newsgroups gmane.linux.debian.devel.bugs.rc
Message-ID <E1wrZka-00Gxo7-0D__45899.3299327389$1785929423$gmane$org@paradis.debian.org>
Package: src:sparsehash
Version: 2.0.4-1
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202608/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:sparsehash, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean
   dh_clean
	rm -f debian/debhelper-build-stamp
	rm -rf debian/.debhelper/
	rm -f -- debian/libsparsehash-dev.substvars debian/files
	rm -fr -- debian/libsparsehash-dev/ debian/tmp/
	find .  \( \( \
		\( -path .\*/.git -o -path .\*/.svn -o -path .\*/.bzr -o -path .\*/.hg -o -path .\*/CVS -o -path .\*/.pc -o -path .\*/_darcs \) -prune -o -type f -a \
	        \( -name '#*#' -o -name '.*~' -o -name '*~' -o -name DEADJOE \
		 -o -name '*.orig' -o -name '*.rej' -o -name '*.bak' \
		 -o -name '.*.orig' -o -name .*.rej -o -name '.SUMS' \
		 -o -name TAGS -o \( -path '*/.deps/*' -a -name '*.P' \) \
		\) -exec rm -f {} + \) -o \
		\( -type d -a \( -name autom4te.cache -o -name __pycache__ \) -prune -exec rm -rf {} + \) \)
 debian/rules binary
dh binary
   dh_update_autotools_config
	cp -a --update=none --reflink=auto config.guess debian/.debhelper/bucket/files/8f68846583131812ef4028fe1e0ed192a3a0ba13abca09afbe42c6b9d8abd9f6.tmp
	mv debian/.debhelper/bucket/files/8f68846583131812ef4028fe1e0ed192a3a0ba13abca09afbe42c6b9d8abd9f6.tmp debian/.debhelper/bucket/files/8f68846583131812ef4028fe1e0ed192a3a0ba13abca09afbe42c6b9d8abd9f6
	cp -f /usr/share/misc/config.guess ./config.guess
	cp -a --update=none --reflink=auto config.sub debian/.debhelper/bucket/files/eeed1b8911b517397de6df8b1a16ff5fb9432ab599401044fc04392d1835bdf9.tmp
	mv debian/.debhelper/bucket/files/eeed1b8911b517397de6df8b1a16ff5fb9432ab599401044fc04392d1835bdf9.tmp debian/.debhelper/bucket/files/eeed1b8911b517397de6df8b1a16ff5fb9432ab599401044fc04392d1835bdf9
	cp -f /usr/share/misc/config.sub ./config.sub
   dh_autoreconf
	find ! -ipath "./debian/*" -a ! \( -path '*/.git/*' -o -path '*/.hg/*' -o -path '*/.bzr/*' -o -path '*/.svn/*' -o -path '*/CVS/*' \) -a  -type f -exec md5sum {} + -o -type l -printf "symlink  %p
" > debian/autoreconf.before
	grep -q ^XDT_ configure.ac
	autoreconf -f -i -v
autoreconf: export WARNINGS=
autoreconf: Entering directory '.'
autoreconf: configure.ac: no obvious need to run autopoint
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: configure.ac: not using Libtool
autoreconf: configure.ac: not using Intltool
autoreconf: configure.ac: not using Gtkdoc
autoreconf: configure.ac: no need to run autopoint (confirmed)
autoreconf: running: /usr/bin/autoconf --force
configure.ac:12: warning: 'AM_CONFIG_HEADER': this macro is obsolete.
configure.ac:12: You should use the 'AC_CONFIG_HEADERS' macro instead.
aclocal.m4:708: AM_CONFIG_HEADER is expanded from...
configure.ac:12: the top level
configure.ac:21: warning: The macro 'AC_HEADER_STDC' is obsolete.
configure.ac:21: You should run autoupdate.
./lib/autoconf/headers.m4:664: AC_HEADER_STDC is expanded from...
configure.ac:21: the top level
configure.ac:42: warning: The macro 'AC_LANG_C' is obsolete.
configure.ac:42: You should run autoupdate.
./lib/autoconf/c.m4:73: AC_LANG_C is expanded from...
m4/acx_pthread.m4:63: ACX_PTHREAD is expanded from...
configure.ac:42: the top level
configure.ac:42: warning: The macro 'AC_TRY_LINK' is obsolete.
configure.ac:42: You should run autoupdate.
./lib/autoconf/general.m4:2976: AC_TRY_LINK is expanded from...
m4/acx_pthread.m4:63: ACX_PTHREAD is expanded from...
configure.ac:42: the top level
configure.ac:51: warning: The macro 'AC_LANG_CPLUSPLUS' is obsolete.
configure.ac:51: You should run autoupdate.
./lib/autoconf/c.m4:271: AC_LANG_CPLUSPLUS is expanded from...
lib/m4sugar/m4sh.m4:689: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:696: AS_IF is expanded from...
./lib/autoconf/general.m4:2305: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2326: AC_CACHE_CHECK is expanded from...
m4/namespaces.m4:2: AC_CXX_NAMESPACES is expanded from...
m4/stl_hash.m4:11: AC_CXX_STL_HASH is expanded from...
configure.ac:51: the top level
configure.ac:51: warning: The macro 'AC_TRY_COMPILE' is obsolete.
configure.ac:51: You should run autoupdate.
./lib/autoconf/general.m4:2903: AC_TRY_COMPILE is expanded from...
lib/m4sugar/m4sh.m4:689: _AS_IF_ELSE is expanded from...
lib/m4sugar/m4sh.m4:696: AS_IF is expanded from...
./lib/autoconf/general.m4:2305: AC_CACHE_VAL is expanded from...
./lib/autoconf/general.m4:2326: AC_CACHE_CHECK is expanded from...
m4/namespaces.m4:2: AC_CXX_NAMESPACES is expanded from...
m4/stl_hash.m4:11: AC_CXX_STL_HASH is expanded from...
configure.ac:51: the top level
configure.ac:51: warning: The macro 'AC_LANG_CPLUSPLUS' is obsolete.
configure.ac:51: You should run autoupdate.
./lib/autoconf/c.m4:271: AC_LANG_CPLUSPLUS is expanded from...
m4/stl_hash.m4:11: AC_CXX_STL_HASH is expanded from...
configure.ac:51: the top level
configure.ac:51: warning: The macro 'AC_TRY_COMPILE' is obsolete.
configure.ac:51: You should run autoupdate.
./lib/autoconf/general.m4:2903: AC_TRY_COMPILE is expanded from...
m4/stl_hash.m4:11: AC_CXX_STL_HASH is expanded from...
configure.ac:51: the top level
configure.ac:52: warning: The macro 'AC_LANG_CPLUSPLUS' is obsolete.
configure.ac:52: You should run autoupdate.
./lib/autoconf/c.m4:271: AC_LANG_CPLUSPLUS is expanded from...
m4/stl_hash_fun.m4:14: AC_CXX_STL_HASH_FUN is expanded from...
configure.ac:52: the top level
configure.ac:52: warning: The macro 'AC_TRY_COMPILE' is obsolete.
configure.ac:52: You should run autoupdate.
./lib/autoconf/general.m4:2903: AC_TRY_COMPILE is expanded from...
m4/stl_hash_fun.m4:14: AC_CXX_STL_HASH_FUN is expanded from...
configure.ac:52: the top level
autoreconf: running: /usr/bin/autoheader --force
autoreconf: running: automake --add-missing --copy --force-missing
configure.ac:16: installing './compile'
Makefile.am:156: warning: source file 'src/hashtable_test.cc' is in a subdirectory,
Makefile.am:156: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least one source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled.  For now, the corresponding output
automake: object file(s) will be placed in the top-level directory.  However, this
automake: behavior may change in a future Automake major version, with object
automake: files being placed in the same subdirectory as the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibility.
Makefile.am:140: warning: source file 'src/libc_allocator_with_realloc_test.cc' is in a subdirectory,
Makefile.am:140: but option 'subdir-objects' is disabled
Makefile.am:172: warning: source file 'src/simple_compat_test.cc' is in a subdirectory,
Makefile.am:172: but option 'subdir-objects' is disabled
Makefile.am:166: warning: source file 'src/simple_test.cc' is in a subdirectory,
Makefile.am:166: but option 'subdir-objects' is disabled
Makefile.am:148: warning: source file 'src/sparsetable_unittest.cc' is in a subdirectory,
Makefile.am:148: but option 'subdir-objects' is disabled
Makefile.am:125: warning: source file 'src/template_util_unittest.cc' is in a subdirectory,
Makefile.am:125: but option 'subdir-objects' is disabled
Makefile.am:179: warning: source file 'src/time_hash_map.cc' is in a subdirectory,
Makefile.am:179: but option 'subdir-objects' is disabled
Makefile.am:132: warning: source file 'src/type_traits_unittest.cc' is in a subdirectory,
Makefile.am:132: but option 'subdir-objects' is disabled
parallel-tests: installing './test-driver'
autoreconf: configure.ac: not running make: --make not given
autoreconf: Leaving directory '.'
	find ! -ipath "./debian/*" -a ! \( -path '*/.git/*' -o -path '*/.hg/*' -o -path '*/.bzr/*' -o -path '*/.svn/*' -o -path '*/CVS/*' \) -a  -type f -exec md5sum {} + -o -type l -printf "symlink  %p
" > debian/autoreconf.after
   dh_auto_configure
	./configure --build=x86_64-linux-gnu --prefix=/usr --includedir=\${prefix}/include --mandir=\${prefix}/share/man --infodir=\${prefix}/share/info --sysconfdir=/etc --localstatedir=/var --disable-option-checking --disable-silent-rules --libdir=\${prefix}/lib/x86_64-linux-gnu --runstatedir=/run --disable-maintainer-mode --disable-dependency-tracking
checking for a BSD-compatible install... /usr/bin/install -c
checking whether sleep supports fractional seconds... yes
checking filesystem timestamp resolution... 0.01
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking xargs -n works... yes
checking whether UID '995' is supported by ustar format... yes
checking whether GID '995' is supported by ustar format... yes
checking how to create a ustar tar archive... gnutar
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C++... yes
checking whether x86_64-linux-gnu-g++ accepts -g... yes
checking whether make supports the include directive... yes (GNU style)
checking dependency style of x86_64-linux-gnu-g++... none
checking for gcc... x86_64-linux-gnu-gcc
checking whether the compiler supports GNU C... yes
checking whether x86_64-linux-gnu-gcc accepts -g... yes
checking for x86_64-linux-gnu-gcc option to enable C23 features... none needed
checking whether x86_64-linux-gnu-gcc understands -c and -o together... yes
checking dependency style of x86_64-linux-gnu-gcc... none
checking how to run the C preprocessor... x86_64-linux-gnu-gcc -E
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for memcpy... yes
checking for memmove... yes
checking for uint16_t... yes
checking for u_int16_t... yes
checking for __uint16... no
checking for long long... yes
checking for sys/resource.h... yes
checking for unistd.h... (cached) yes
checking for sys/time.h... yes
checking for sys/utsname.h... yes
checking for google/malloc_extension.h... no
checking whether the compiler implements namespaces... yes
checking the location of hash_map... <unordered_map>
checking how to include hash_fun directly... <functional>
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/config.h
config.status: executing depfiles commands
   dh_auto_build
	make -j2
make[1]: Entering directory '/<<PKGBUILDDIR>>'
[ -d src/sparsehash/internal ] || mkdir -p src/sparsehash/internal
echo "/*" > src/sparsehash/internal/_sparsehash_config
echo " * NOTE: This file is for internal use only." >> src/sparsehash/internal/_sparsehash_config
echo " *       Do not use these #defines in your own program!" >> src/sparsehash/internal/_sparsehash_config
echo " */" >> src/sparsehash/internal/_sparsehash_config
mawk '{prevline=currline; currline=$0;} \
        /^#/ {in_second_file = 1;} \
        !in_second_file {if (currline !~ /^ *$/) {inc[currline]=0}}; \
       	in_second_file { for (i in inc) { \
       	                   if (index(currline, i) != 0) { \
       	                      print "\n"prevline"\n"currline; \
       	                      delete inc[i]; \
       	                   } \
       	                 } }' \
./src/config.h.include ./src/config.h \
>> src/sparsehash/internal/_sparsehash_config
mv -f src/sparsehash/internal/_sparsehash_config src/sparsehash/internal/sparseconfig.h
make  all-am
make[2]: Entering directory '/<<PKGBUILDDIR>>'
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I./src  -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o template_util_unittest.o `test -f 'src/template_util_unittest.cc' || echo './'`src/template_util_unittest.cc
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I./src  -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o type_traits_unittest.o `test -f 'src/type_traits_unittest.cc' || echo './'`src/type_traits_unittest.cc
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I./src  -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o libc_allocator_with_realloc_test.o `test -f 'src/libc_allocator_with_realloc_test.cc' || echo './'`src/libc_allocator_with_realloc_test.cc
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I./src  -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o sparsetable_unittest.o `test -f 'src/sparsetable_unittest.cc' || echo './'`src/sparsetable_unittest.cc
In file included from src/sparsetable_unittest.cc:47:
./src/sparsehash/sparsetable: In member function ‘constexpr google::sparsetable<int>& google::sparsetable<int>::operator=(const google::sparsetable<int>&)’:
./src/sparsehash/sparsetable:1363:7: warning: implicitly-declared ‘constexpr google::sparsetable<int>::Settings& google::sparsetable<int>::Settings::operator=(const google::sparsetable<int>::Settings&)’ is deprecated [-Wdeprecated-copy]
 1363 | class sparsetable {
      |       ^~~~~~~~~~~
./src/sparsehash/sparsetable:1803:5: note: because ‘google::sparsetable<int>::Settings’ has user-provided ‘google::sparsetable<T, GROUP_SIZE, Alloc>::Settings::Settings(const google::sparsetable<T, GROUP_SIZE, Alloc>::Settings&) [with T = int; short unsigned int GROUP_SIZE = 48; Alloc = google::libc_allocator_with_realloc<int>]’
 1803 |     Settings(const Settings& s)
      |     ^~~~~~~~
src/sparsetable_unittest.cc: In function ‘void TestAllocator()’:
src/sparsetable_unittest.cc:621:9: note: synthesized method ‘constexpr google::sparsetable<int>& google::sparsetable<int>::operator=(const google::sparsetable<int>&)’ first required here
  621 |     y = x;
      |         ^
./src/sparsehash/sparsetable: In instantiation of ‘class google::sparsetable<int, 48, std::allocator<int> >’:
src/sparsetable_unittest.cc:633:63:   required from here
  633 |   sparsetable<int, DEFAULT_SPARSEGROUP_SIZE, allocator<int> > u, v;
      |                                                               ^
./src/sparsehash/sparsetable:1365:53: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1365 |   typedef typename Alloc::template rebind<T>::other value_alloc_type;
      |                                                     ^~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1366:36: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1366 |   typedef typename Alloc::template rebind<
      |                                    ^~~~~~~
 1367 |       sparsegroup<T, GROUP_SIZE, value_alloc_type> >::other vector_alloc;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1392:6: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1392 |      nonempty_iterator;
      |      ^~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1397:6: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1397 |      const_nonempty_iterator;
      |      ^~~~~~~~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1398:52: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1398 |   typedef std::reverse_iterator<nonempty_iterator> reverse_nonempty_iterator;
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1399:58: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1399 |   typedef std::reverse_iterator<const_nonempty_iterator> const_reverse_nonempty_iterator;
      |                                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1405:6: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1405 |      destructive_iterator;
      |      ^~~~~~~~~~~~~~~~~~~~
./src/sparsehash/sparsetable:1366:36: error: no class template named ‘rebind’ in ‘class std::allocator<int>’
 1366 |   typedef typename Alloc::template rebind<
      |                                    ^~~~~~~
 1367 |       sparsegroup<T, GROUP_SIZE, value_alloc_type> >::other vector_alloc;
      |       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/sparsetable_unittest.cc:633:63: error: use of deleted function ‘google::sparsetable<int, 48, std::allocator<int> >::sparsetable()’
  633 |   sparsetable<int, DEFAULT_SPARSEGROUP_SIZE, allocator<int> > u, v;
      |                                                               ^
./src/sparsehash/sparsetable:1363:7: note: ‘google::sparsetable<int, 48, std::allocator<int> >::sparsetable()’ is implicitly deleted because the default definition would be ill-formed:
 1363 | class sparsetable {
      |       ^~~~~~~~~~~
./src/sparsehash/sparsetable: At global scope:
./src/sparsehash/sparsetable:1363:7: error: no matching function for call to ‘google::sparsetable<int, 48, std::allocator<int> >::Settings::Settings()’
  • there are 2 candidates
    • candidate 1: ‘google::sparsetable<T, GROUP_SIZE, Alloc>::Settings::Settings(const google::sparsetable<T, GROUP_SIZE, Alloc>::Settings&) [with T = int; short unsigned int GROUP_SIZE = 48; Alloc = std::allocator<int>]’
      ./src/sparsehash/sparsetable:1803:5:
       1803 |     Settings(const Settings& s)
            |     ^~~~~~~~
      • candidate expects 1 argument, 0 provided
    • candidate 2: ‘google::sparsetable<T, GROUP_SIZE, Alloc>::Settings::Settings(const google::sparsetable<T, GROUP_SIZE, Alloc>::allocator_type&, size_type, size_type) [with T = int; short unsigned int GROUP_SIZE = 48; Alloc = std::allocator<int>; google::sparsetable<T, GROUP_SIZE, Alloc>::allocator_type = std::allocator<int>; size_type = long unsigned int]’
      ./src/sparsehash/sparsetable:1800:5:
       1800 |     Settings(const allocator_type& a, size_type sz = 0, size_type n = 0)
            |     ^~~~~~~~
      • candidate expects 3 arguments, 0 provided
src/sparsetable_unittest.cc: In function ‘void TestAllocator()’:
src/sparsetable_unittest.cc:633:63: note: use ‘-fdiagnostics-all-candidates’ to display considered candidates
  633 |   sparsetable<int, DEFAULT_SPARSEGROUP_SIZE, allocator<int> > u, v;
      |                                                               ^
src/sparsetable_unittest.cc:633:66: error: use of deleted function ‘google::sparsetable<int, 48, std::allocator<int> >::sparsetable()’
  633 |   sparsetable<int, DEFAULT_SPARSEGROUP_SIZE, allocator<int> > u, v;
      |                                                                  ^
src/sparsetable_unittest.cc:633:66: note: use ‘-fdiagnostics-all-candidates’ to display considered candidates
src/sparsetable_unittest.cc:635:7: error: ‘class google::sparsetable<int, 48, std::allocator<int> >’ has no member named ‘resize’
  635 |     u.resize(s);
      |       ^~~~~~
src/sparsetable_unittest.cc:637:9: error: ‘class google::sparsetable<int, 48, std::allocator<int> >’ has no member named ‘set’
  637 |       u.set(i, i + 1);
      |         ^~~
src/sparsetable_unittest.cc:641:14: error: no matching function for call to ‘google::sparsetable<int, 48, std::allocator<int> >::erase(int&)’
  641 |       v.erase(i);
      |       ~~~~~~~^~~
  • there are 2 candidates
    • candidate 1: ‘void google::sparsetable<T, GROUP_SIZE, Alloc>::erase(iterator) [with T = int; short unsigned int GROUP_SIZE = 48; Alloc = std::allocator<int>; iterator = google::table_iterator<google::sparsetable<int, 48, std::allocator<int> > >]’
      ./src/sparsehash/sparsetable:1627:8:
       1627 |   void erase(iterator pos) {
            |        ^~~~~
      • no known conversion for argument 1 from ‘int’ to ‘google::sparsetable<int, 48, std::allocator<int> >::iterator’ {aka ‘google::table_iterator<google::sparsetable<int, 48, std::allocator<int> > >’}
        ./src/sparsehash/sparsetable:1627:23:
         1627 |   void erase(iterator pos) {
              |              ~~~~~~~~~^~~
    • candidate 2: ‘void google::sparsetable<T, GROUP_SIZE, Alloc>::erase(iterator, iterator) [with T = int; short unsigned int GROUP_SIZE = 48; Alloc = std::allocator<int>; iterator = google::table_iterator<google::sparsetable<int, 48, std::allocator<int> > >]’
      ./src/sparsehash/sparsetable:1631:8:
       1631 |   void erase(iterator start_it, iterator end_it) {
            |        ^~~~~
      • candidate expects 2 arguments, 1 provided
src/sparsetable_unittest.cc:645:10: error: ‘class google::sparsetable<int, 48, std::allocator<int> >’ has no member named ‘num_nonempty’
  645 |   TEST(u.num_nonempty() == 0);
      |          ^~~~~~~~~~~~
src/sparsetable_unittest.cc:66:38: note: in definition of macro ‘TEST’
   66 |                                     (cond) ? "yes" : "no");
      |                                      ^~~~
src/sparsetable_unittest.cc:646:49: error: no match for ‘operator[]’ (operand types are ‘google::sparsetable<int, 48, std::allocator<int> >’ and ‘int’)
  646 |   out += snprintf(out, LEFT, "v[0]: %d\n", int(v[0]));
      |                                                 ^
src/sparsetable_unittest.cc:647:53: error: no match for ‘operator[]’ (operand types are ‘google::sparsetable<int, 48, std::allocator<int> >’ and ‘int’)
  647 |   out += snprintf(out, LEFT, "v[39999]: %d\n", int(v[39999]));
      |                                                     ^
./src/sparsehash/sparsetable: In member function ‘constexpr google::sparsetable<std::__cxx11::basic_string<char> >& google::sparsetable<std::__cxx11::basic_string<char> >::operator=(const google::sparsetable<std::__cxx11::basic_string<char> >&)’:
./src/sparsehash/sparsetable:1363:7: warning: implicitly-declared ‘constexpr google::sparsetable<std::__cxx11::basic_string<char> >::Settings& google::sparsetable<std::__cxx11::basic_string<char> >::Settings::operator=(const google::sparsetable<std::__cxx11::basic_string<char> >::Settings&)’ is deprecated [-Wdeprecated-copy]
 1363 | class sparsetable {
      |       ^~~~~~~~~~~
./src/sparsehash/sparsetable:1803:5: note: because ‘google::sparsetable<std::__cxx11::basic_string<char> >::Settings’ has user-provided ‘google::sparsetable<T, GROUP_SIZE, Alloc>::Settings::Settings(const google::sparsetable<T, GROUP_SIZE, Alloc>::Settings&) [with T = std::__cxx11::basic_string<char>; short unsigned int GROUP_SIZE = 48; Alloc = google::libc_allocator_with_realloc<std::__cxx11::basic_string<char> >]’
 1803 |     Settings(const Settings& s)
      |     ^~~~~~~~
src/sparsetable_unittest.cc: In function ‘void TestAllocator()’:
src/sparsetable_unittest.cc:657:9: note: synthesized method ‘constexpr google::sparsetable<std::__cxx11::basic_string<char> >& google::sparsetable<std::__cxx11::basic_string<char> >::operator=(const google::sparsetable<std::__cxx11::basic_string<char> >&)’ first required here
  657 |     b = a;
      |         ^
x86_64-linux-gnu-g++ -DHAVE_CONFIG_H -I. -I./src  -I./src -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -W -Wwrite-strings -Woverloaded-virtual -Wshadow -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o hashtable_test.o `test -f 'src/hashtable_test.cc' || echo './'`src/hashtable_test.cc
make[2]: *** [Makefile:973: sparsetable_unittest.o] Error 1
make[2]: *** Waiting for unfinished jobs....
src/hashtable_test.cc: In member function ‘void {anonymous}::TEST_HashtableTest_SimpleDataTypeOptimizations::Run()’:
src/hashtable_test.cc:1777:27: warning: implicitly-declared ‘constexpr {anonymous}::Memmove& {anonymous}::Memmove::operator=(const {anonymous}::Memmove&)’ is deprecated [-Wdeprecated-copy]
 1777 |     memmove[i] = Memmove(i);
      |                           ^
src/hashtable_test.cc:1742:3: note: because ‘{anonymous}::Memmove’ has user-provided ‘{anonymous}::Memmove::Memmove(const {anonymous}::Memmove&)’
 1742 |   Memmove(const Memmove& that) { this->i = that.i; num_copies++; }
      |   ^~~~~~~
src/hashtable_test.cc:1783:31: warning: implicitly-declared ‘constexpr {anonymous}::NoMemmove& {anonymous}::NoMemmove::operator=(const {anonymous}::NoMemmove&)’ is deprecated [-Wdeprecated-copy]
 1783 |     nomemmove[i] = NoMemmove(i);
      |                               ^
src/hashtable_test.cc:1752:3: note: because ‘{anonymous}::NoMemmove’ has user-provided ‘{anonymous}::NoMemmove::NoMemmove(const {anonymous}::NoMemmove&)’
 1752 |   NoMemmove(const NoMemmove& that) { this->i = that.i; num_copies++; }
      |   ^~~~~~~~~
src/hashtable_test.cc:1789:45: warning: implicitly-declared ‘constexpr {anonymous}::Memmove& {anonymous}::Memmove::operator=(const {anonymous}::Memmove&)’ is deprecated [-Wdeprecated-copy]
 1789 |     memmove_nonstandard_alloc[i] = Memmove(i);
      |                                             ^
src/hashtable_test.cc:1742:3: note: because ‘{anonymous}::Memmove’ has user-provided ‘{anonymous}::Memmove::Memmove(const {anonymous}::Memmove&)’
 1742 |   Memmove(const Memmove& that) { this->i = that.i; num_copies++; }
      |   ^~~~~~~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_SparseHashMap<int, int, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_SparseHashMap<int, int, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  181 |         TEST_onetype_##superclass##_##testname<superclass##_type1> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_SparseHashSet<int, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_SparseHashSet<int, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  185 |         TEST_onetype_##superclass##_##testname<superclass##_type2> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_SparseHashtable<int, int, {anonymous}::Hasher, {anonymous}::Negation<int>, {anonymous}::SetKey<int, {anonymous}::Negation<int> >, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_SparseHashtable<int, int, {anonymous}::Hasher, {anonymous}::Negation<int>, {anonymous}::SetKey<int, {anonymous}::Negation<int> >, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  189 |         TEST_onetype_##superclass##_##testname<superclass##_type3> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_DenseHashMap<int, int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_DenseHashMap<int, int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  193 |         TEST_onetype_##superclass##_##testname<superclass##_type4> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_DenseHashSet<int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_DenseHashSet<int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  197 |         TEST_onetype_##superclass##_##testname<superclass##_type5> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
src/hashtable_test.cc: In instantiation of ‘void {anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::Run() [with TypeParam = google::HashtableInterface_DenseHashtable<int, int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Negation<int>, {anonymous}::SetKey<int, {anonymous}::Negation<int> >, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’:
src/hashtable_test.cc:571:1:   required from ‘{anonymous}::TEST_onetype_HashtableIntTest_Typedefs<TypeParam>::TEST_onetype_HashtableIntTest_Typedefs() [with TypeParam = google::HashtableInterface_DenseHashtable<int, int, kEmptyInt, {anonymous}::Hasher, {anonymous}::Negation<int>, {anonymous}::SetKey<int, {anonymous}::Negation<int> >, {anonymous}::Hasher, {anonymous}::Alloc<int> >]’
  171 |       Run();                                                            \
      |       ^~~
src/hashtable_test.cc:571:1:   required from here
  201 |         TEST_onetype_##superclass##_##testname<superclass##_type6> t;   \
      |                                                                    ^
src/hashtable_test.cc:577:32: warning: variable ‘kt’ set but not used [-Wunused-but-set-variable=]
  577 |   typename TypeParam::key_type kt;
      |                                ^~
src/hashtable_test.cc:583:33: warning: variable ‘st’ set but not used [-Wunused-but-set-variable=]
  583 |   typename TypeParam::size_type st;
      |                                 ^~
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [Makefile:756: all] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_auto_build: error: make -j2 returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2
--------------------------------------------------------------------------------