Trunk g++/x86/160655 with -O0 compile test w/o errors, but with -O[123] generates undefined symbol
--> cat 2010_06_13.cpp namespace FOO { template <typename T> class A { public: A(char *pMemMgr = 0); void Enum(); virtual void OnProv() = 0; virtual ~A() { } }; typedef A<char> B; template<typename T> inline A<T>::A(char *pMemMgr) { } template<typename T> inline void A<T>::Enum () { OnProv (); } } // namespace FOO class C {}; class D: public C, public FOO::B { public: void OnProv() {} }; void aaa() { D x; x.Enum(); } --> g++ -O1 -c 2010_06_13.cpp && nm -uAC 2010_06_13.o | grep OnProv 2010_06_13.o: U FOO::A<char>::OnProv() --> g++ -O0 -c 2010_06_13.cpp && nm -uAC 2010_06_13.o | grep OnProv --> --> g++ -v Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/local/gcc_current/libexec/gcc/i686-redhat-linux/4.6.0/lto-wrapper Target: i686-redhat-linux Configured with: ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs : (reconfigured) ../gcc-current/configure --prefix=/usr/local/gcc_current --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=yes --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-languages=c,c++ --with-ppl --with-cloog --with-tune=generic --with-arch=i686 --build=i686-redhat-linux --enable-lto --enable-version-specific-runtime-libs Thread model: posix gcc version 4.6.0 20100612 (experimental) [trunk revision 160655] (GCC) Need i file a PR? Thanks, Dmitry