[lld] r251502 - [ELF2] Move sorting and data to the GNU hash table section.

Igor Kudrin via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 29 20:18:29 PDT 2015


Hi Rafael,

On 30.10.2015 3:25, Rafael EspĂ­ndola wrote:
>>   template <class ELFT> void GnuHashTableSection<ELFT>::finalize() {
>> -  const unsigned NumHashed = Out<ELFT>::DynSymTab->getNumGnuHashSymbols();
>> +  ArrayRef<SymbolBody *> A = Out<ELFT>::DynSymTab->getSymbols();
>> +  unsigned NumHashed = std::count_if(A.begin(), A.end(), includeInGnuHashTable);
>>     NBuckets = calcNBuckets(NumHashed);
>>     MaskWords = calcMaskWords(NumHashed);
> Could we write this as:
>   unsigned NumHashed = HashedSymbols.size();
HashSymbols is filled in the addSymbols() method which is called from 
DynSymTab's finalize() method.
Do we have any guarantee that  DynSymTab's finalize() is called before 
GnuHashTab's one?
How to force that guarantee in code?

-Igor


More information about the llvm-commits mailing list