Skip to content

Instantly share code, notes, and snippets.

@mikegerber
Last active March 3, 2020 15:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikegerber/dd4df2764f3680a740e6c1ae1a464bd2 to your computer and use it in GitHub Desktop.
Save mikegerber/dd4df2764f3680a740e6c1ae1a464bd2 to your computer and use it in GitHub Desktop.
  • Debian 10
  • g++-8 8.3.0-6

To reproduce:

git clone https://github.com/OCR-D/olena.git OCR-D-olena
cd OCR-D-olena
./configure --disable-dependency-tracking --enable-scribo
make -j8
make -j8 check  # This fails

make check fails with:

Making check in world
make[3]: Entering directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world'
Making check in binary_2d
make[4]: Entering directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world/binary_2d'
make  enlarge subsample
make[5]: Entering directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world/binary_2d'
  CXX      enlarge.o
In file included from enlarge.cc:28:
../../../../milena/mln/world/binary_2d/enlarge.hh: In instantiation of ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const mln::Image<I>&, unsigned int) [with I = mln::image2d<mln::value::int_u<8> >; typename mln::trait::concrete<I>::ret = mln::image2d<mln::value::int_u<8> >]’:
../../../../milena/mln/world/binary_2d/enlarge.hh:370:41:   required from ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::enlarge(const mln::Image<I>&, unsigned int) [with I = mln::image2d<mln::value::int_u<8> >; typename mln::trait::concrete<I>::ret = mln::image2d<mln::value::int_u<8> >]’
enlarge.cc:53:72:   required from here
../../../../milena/mln/world/binary_2d/enlarge.hh:346:27: error: call of overloaded ‘enlarge_dispatch(mln::internal::exact_<const mln::Image<mln::image2d<mln::value::int_u<8> > > >::ret&, mln::image2d<mln::value::int_u<8> >::value, unsigned int&)’ is ambiguous
    return enlarge_dispatch(exact(input), mln_value(I)(), n);
           ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:316:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const bool&, unsigned int) [with I = mln::image2d<mln::value::int_u<8> >; typename mln::trait::concrete<I>::ret = mln::image2d<mln::value::int_u<8> >]’
  enlarge_dispatch(const I& input, const bool&, unsigned n)
  ^~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:324:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const int_u8&, unsigned int) [with I = mln::image2d<mln::value::int_u<8> >; typename mln::trait::concrete<I>::ret = mln::image2d<mln::value::int_u<8> >; mln::value::int_u8 = mln::value::int_u<8>]’
  enlarge_dispatch(const I& input, const value::int_u8&, unsigned n)
  ^~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:332:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const typename I::value&, unsigned int) [with I = mln::image2d<mln::value::int_u<8> >; typename mln::trait::concrete<I>::ret = mln::image2d<mln::value::int_u<8> >; typename I::value = mln::value::int_u<8>]’
  enlarge_dispatch(const I& input, const mln_value(I)&, unsigned n)
  ^~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh: In instantiation of ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const mln::Image<I>&, unsigned int) [with I = mln::image2d<bool>; typename mln::trait::concrete<I>::ret = mln::image2d<bool>]’:
../../../../milena/mln/world/binary_2d/enlarge.hh:370:41:   required from ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::enlarge(const mln::Image<I>&, unsigned int) [with I = mln::image2d<bool>; typename mln::trait::concrete<I>::ret = mln::image2d<bool>]’
enlarge.cc:65:63:   required from here
../../../../milena/mln/world/binary_2d/enlarge.hh:346:27: error: call of overloaded ‘enlarge_dispatch(mln::internal::exact_<const mln::Image<mln::image2d<bool> > >::ret&, bool, unsigned int&)’ is ambiguous
    return enlarge_dispatch(exact(input), mln_value(I)(), n);
           ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:316:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const bool&, unsigned int) [with I = mln::image2d<bool>; typename mln::trait::concrete<I>::ret = mln::image2d<bool>]’
  enlarge_dispatch(const I& input, const bool&, unsigned n)
  ^~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:324:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const int_u8&, unsigned int) [with I = mln::image2d<bool>; typename mln::trait::concrete<I>::ret = mln::image2d<bool>; mln::value::int_u8 = mln::value::int_u<8>]’
  enlarge_dispatch(const I& input, const value::int_u8&, unsigned n)
  ^~~~~~~~~~~~~~~~
../../../../milena/mln/world/binary_2d/enlarge.hh:332:2: note: candidate: ‘typename mln::trait::concrete<I>::ret mln::world::binary_2d::internal::enlarge_dispatch(const I&, const typename I::value&, unsigned int) [with I = mln::image2d<bool>; typename mln::trait::concrete<I>::ret = mln::image2d<bool>; typename I::value = bool]’
  enlarge_dispatch(const I& input, const mln_value(I)&, unsigned n)
  ^~~~~~~~~~~~~~~~
make[5]: *** [Makefile:687: enlarge.o] Error 1
make[5]: Leaving directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world/binary_2d'
make[4]: *** [Makefile:967: check-am] Error 2
make[4]: Leaving directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world/binary_2d'
make[3]: *** [Makefile:462: check-recursive] Error 1
make[3]: Leaving directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests/world'
make[2]: *** [Makefile:883: check-recursive] Error 1
make[2]: Leaving directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena/tests'
make[1]: *** [Makefile:1918: check-recursive] Error 1
make[1]: Leaving directory '/home/mike/2020-03-olena-build-fails/OCR-D-olena/milena'
make: *** [Makefile:605: check-recursive] Error 1

It works with g++-7

make clean
sudo apt-get install g++-7
make -j8 CXX=g++-7
make -j8 check CXX=g++-7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment