With gcc-c++-3.1-0.16, I get this when I try to compile from aspell-0.33.7.1-3.src.rpm: i386-redhat-linux-g++ -DHAVE_CONFIG_H -I. -I. -I.. -I../util -I/usr/include -g -c single_repl.cc -fPIC -DPIC cc1plus: warning: changing search order for system directory "/usr/include" cc1plus: warning: as it has already been specified as a non-system directory In file included from ../util/hash-t.hh:7, from single_repl.hh:2, from single_repl.cc:3: ../util/hash.hh:40: warning: `typename autil::BlockSList<T>::Node' is implicitly a typename ../util/hash.hh:40: warning: implicit typename is deprecated, please see the documentation for details ../util/hash.hh:60: warning: `typename autil::BlockSList<T>::Node' is implicitly a typename ../util/hash.hh:60: warning: implicit typename is deprecated, please see the documentation for details In file included from single_repl.hh:2, from single_repl.cc:3: ../util/hash-t.hh:51: warning: `typename autil::HashTable<P>::PrimeIndex' is implicitly a typename ../util/hash-t.hh:51: warning: implicit typename is deprecated, please see the documentation for details ../util/hash-t.hh:75: warning: `typename autil::HashTable<P>::iterator' is implicitly a typename ../util/hash-t.hh:75: warning: implicit typename is deprecated, please see the documentation for details ../util/hash-t.hh:107: warning: `typename autil::HashTable<P>::Size' is implicitly a typename ../util/hash-t.hh:107: warning: implicit typename is deprecated, please see the documentation for details ../util/hash-t.hh:126: warning: `typename autil::HashTable<P>::iterator' is implicitly a typename ../util/hash-t.hh:126: warning: implicit typename is deprecated, please see the documentation for details ../util/hash-t.hh:143: warning: `typename autil::HashTable<P>::iterator' is implicitly a typename ../util/hash-t.hh:143: warning: implicit typename is deprecated, please see the documentation for details ../util/hash-t.hh:143: warning: `typename autil::HashTable<P>::iterator' is implicitly a typename ../util/hash-t.hh:143: warning: implicit typename is deprecated, please see the documentation for details repl.hh: In member function `afilter::SingleRepl<afilter::uni2single>& afilter::SingleRepl<afilter::uni2single>::operator=(const afilter::SingleRepl<afilter::uni2single>&)': single_repl.hh:35: instantiated from `void afilter::SingleRepl<T>::assign(typename T::Base*) [with T = afilter::uni2single]' repl_util.hh:26: instantiated from here repl.hh:58: `afilter::CharReplBase<T>& afilter::CharReplBase<T>::operator=(const afilter::CharReplBase<T>&) [with T = afilter::uni2single]' is protected single_repl.hh:35: within this context repl.hh: In member function `afilter::SingleRepl<afilter::uni2char>& afilter::SingleRepl<afilter::uni2char>::operator=(const afilter::SingleRepl<afilter::uni2char>&)': single_repl.hh:35: instantiated from `void afilter::SingleRepl<T>::assign(typename T::Base*) [with T = afilter::uni2char]' repl_util.hh:26: instantiated from here repl.hh:58: `afilter::CharReplBase<T>& afilter::CharReplBase<T>::operator=(const afilter::CharReplBase<T>&) [with T = afilter::uni2char]' is protected single_repl.hh:35: within this context repl.hh: In member function `afilter::SingleRepl<afilter::char2uni>& afilter::SingleRepl<afilter::char2uni>::operator=(const afilter::SingleRepl<afilter::char2uni>&)': single_repl.hh:35: instantiated from `void afilter::SingleRepl<T>::assign(typename T::Base*) [with T = afilter::char2uni]' repl_util.hh:26: instantiated from here repl.hh:58: `afilter::CharReplBase<T>& afilter::CharReplBase<T>::operator=(const afilter::CharReplBase<T>&) [with T = afilter::char2uni]' is protected single_repl.hh:35: within this context filter.hh: In member function `afilter::ReplItr<afilter::SingleRepl<afilter::char2single>, -1, -1>& afilter::ReplItr<afilter::SingleRepl<afilter::char2single>, -1, -1>::operator=(const afilter::ReplItr<afilter::SingleRepl<afilter::char2single>, -1, -1>&)': repl-t.hh:33: instantiated from `void afilter::ReplItr<CharRepl, MaxIn, MaxOut>::assign(const afilter::FilterItrPart*) [with CharRepl = afilter::SingleRepl<afilter::char2single>, int MaxIn = -1, int MaxOut = -1]' repl_util.hh:26: instantiated from here filter.hh:24: `afilter::FilterItrPart& afilter::FilterItrPart::operator=(const afilter::FilterItrPart&)' is protected repl-t.hh:33: within this context repl.hh: In member function `afilter::SingleRepl<afilter::char2single>& afilter::SingleRepl<afilter::char2single>::operator=(const afilter::SingleRepl<afilter::char2single>&)': repl.hh:58: `afilter::CharReplBase<T>& afilter::CharReplBase<T>::operator=(const afilter::CharReplBase<T>&) [with T = afilter::char2single]' is protected repl-t.hh:33: within this context filter.hh: In member function `afilter::ReplItr<afilter::SingleRepl<afilter::char2char>, -1, -1>& afilter::ReplItr<afilter::SingleRepl<afilter::char2char>, -1, -1>::operator=(const afilter::ReplItr<afilter::SingleRepl<afilter::char2char>, -1, -1>&)': repl-t.hh:33: instantiated from `void afilter::ReplItr<CharRepl, MaxIn, MaxOut>::assign(const afilter::FilterItrPart*) [with CharRepl = afilter::SingleRepl<afilter::char2char>, int MaxIn = -1, int MaxOut = -1]' repl_util.hh:26: instantiated from here filter.hh:24: `afilter::FilterItrPart& afilter::FilterItrPart::operator=(const afilter::FilterItrPart&)' is protected repl-t.hh:33: within this context repl.hh: In member function `afilter::SingleRepl<afilter::char2char>& afilter::SingleRepl<afilter::char2char>::operator=(const afilter::SingleRepl<afilter::char2char>&)': repl.hh:58: `afilter::CharReplBase<T>& afilter::CharReplBase<T>::operator=(const afilter::CharReplBase<T>&) [with T = afilter::char2char]' is protected repl-t.hh:33: within this context make[2]: *** [single_repl.lo] Error 1 make[2]: Leaving directory `/d/redhat/BUILD/aspell-.33.7/filter' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/d/redhat/BUILD/aspell-.33.7' make: *** [all-recursive-am] Error 2 error: Bad exit status from /var/tmp/rpm-tmp.51475 (%build) RPM build errors: Bad exit status from /var/tmp/rpm-tmp.51475 (%build)
Something in gcc changed the last month or so... will fix.
This was fixed in 0.33.7.1-7