[Bug lto/60567] [4.9 Regression] lto1 ICE in add_symbol_to_partition, at lto/lto-partition.c:233 with -fno-use-linker-plugin
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Apr 9 15:59:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60567
--- Comment #14 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
OK, the problem is that one comdat group has two functions:
_ZNK19MutableIntegerValue18isValidNativeValueEi/0 (isValidNativeValue)
@0x7ffff6adfe18
Type: function definition analyzed
Visibility: forced_by_abi externally_visible public weak
comdat_group:_ZNK19MutableIntegerValue18isValidNativeValueEi one_only
section_name:.text._ZNK19MutableIntegerValue18isValidNativeValueEi virtual
Same comdat group as: _ZThn8_NK19MutableIntegerValue18isValidNativeValueEi/2
Address is taken.
Aux: @0x1 References:
Referring: *.LTHUNK0/1 (alias)_ZTV19MutableIntegerValue/3 (addr)
Read from file: t.o
Availability: available
First run: 0
Function flags:
Called by:
Calls:
and
_ZThn8_NK19MutableIntegerValue18isValidNativeValueEi/2
(_ZThn8_NK19MutableIntegerValue18isValidNativeValueEi) @0x7ffff6c64148
Type: function definition analyzed
Visibility: externally_visible public weak
comdat_group:_ZNK19MutableIntegerValue18isValidNativeValueEi one_only
section_name:.text._ZNK19MutableIntegerValue18isValidNativeValueEi virtual
artificial
Same comdat group as: _ZNK19MutableIntegerValue18isValidNativeValueEi/0
Address is taken.
Aux: @0x1 References:
Referring: _ZTV19MutableIntegerValue/3 (addr)
Read from file: t.o
Availability: overwritable
First run: 0
Function flags:
Thunk fixed offset -8 virtual value 0 has virtual offset 0)
Called by:
Calls: *.LTHUNK0/1 (1.00 per call)
Thunk doesn't have forced_by_abi. This makes the partitinoning code to deal
with the comdat in two ways - duplicating into every partion that use it as
well as keying it to one partition.
This looks to me as C++ FE bug: When function is forced (keyed), its thunk
should also be forced IMO. It doesn't seem to make sense to keep function but
optimize out the thunk as we would do now (even w/o LTO)
More information about the Gcc-bugs
mailing list