egcs 1.1.2 explicit template bug
Sean C. Rhea
srhea@ibmoto.com
Thu Apr 1 13:23:00 GMT 1999
When I do:
/usr/local/bin/g++ -fno-implicit-templates candy.C
where candy.C looks like:
#include <list>
int main ()
{
list<int> l;
return 0;
}
template class list<int>;
I get this:
/var/tmp/cc8ScNzz.o: In function `list<int,
__default_alloc_template<false, 0> >::operator=(list<int,
__default_alloc_template<false, 0> > const &)':
/var/tmp/cc8ScNzz.o(.text+0x1040): undefined reference to `void
list<int, __default_alloc_template<false, 0>
>::insert<__list_iterator<int, int const &, int const *> >(__list_iterator<int, int &, int *>, __list_iterator<int, int const &, int const *>, __list_iterator<int, int const &, int const *>)'
/var/tmp/cc8ScNzz.o: In function `void list<int,
__default_alloc_template<false, 0>
>::range_initialize<__list_iterator<int, int const &, int const *> >(__list_iterator<int, int const &, int const *>, __list_iterator<int, int const &, int const *>)':
/var/tmp/cc8ScNzz.o(.void list<int, __default_alloc_template<0, 0>
>::gnu.linkonce.t.range_initialize<__list_iterator<int, int const &, int const *> >(__list_iterator<int, int const &, int const *>, __list_iterator<int, int const &, int const *>)+0x6c): undefined reference to `void list<int, __default_alloc_template<false, 0> >::insert<__list_iterator<int, int const &, int const *> >(__list_iterator<int, int &, int *>, __list_iterator<int, int const &, int const *>, __list_iterator<int, int const &, int const *>)'
collect2: ld returned 1 exit status
I know that's hard to parse, but it looks to me like a version of insert
is not getting instanciated by the compiler. A full bug report is
enclosed.
Thanks,
Sean C. Rhea
egcs-1.1.2-bug-report.tar.gz
More information about the Gcc-bugs
mailing list