http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567
Tobias Burnus <burnus at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |UNCONFIRMED Ever confirmed|1 |0 --- Comment #3 from Tobias Burnus <burnus at gcc dot gnu.org> --- (In reply to Tobias Burnus from comment #2) > Seems to be a problem of Binutils. If I use the current Binutils from > binutils-gdb git (= 2.24.51.20140319), it works. But only for the test case of comment 0. It still fails for the big program and for the following test case. [I wonder whether you can reproduce this one.] Using either CentOS 6's Binutils or the git-trunk of Binutils (2.24.51.20140319), the following fails for me: $ g++ -Wfatal-errors -std=c++11 -r -nostdlib -flto test15.ii lto1: internal compiler error: in add_symbol_to_partition, at lto/lto-partition.c:233 0x5b4d44 add_symbol_to_partition ../../gcc/lto/lto-partition.c:231 //---------------------------------------------- #pragma implementation #pragma interface class MutableError { }; class MutableSelector { }; template <class CONVERTER> class MutableValueHolder { virtual MutableError isValidNativeValue(const typename CONVERTER::Value_t) const {} }; class MutableNumericTaggedType : virtual public MutableSelector { }; class MutableNumericType : public virtual MutableNumericTaggedType { }; class MutableIntegerConverter { public: typedef int Value_t; }; class MutableIntegerValue : public MutableNumericType, protected MutableValueHolder<MutableIntegerConverter> { virtual MutableError isValidNativeValue(const MutableIntegerConverter::Value_t value) const { } };