[Bug lto/60567] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233

burnus at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Mar 19 17:42:00 GMT 2014


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 {    }
};



More information about the Gcc-bugs mailing list