Displaying 3 results from an estimated 3 matches for "addundefined".
2016 Apr 27
4
RFC: LLD symbol table redesign
...rectly using symbol
information, without needing to create a SymbolBody for the symbol. If we
decide to replace the symbol, we placement-new a SymbolBody for the symbol
into Symbol::Body.
A sketch of how the symbol table might implement adding an undefined symbol:
Symbol *SymbolTable<ELFT>::addUndefined(StringRef Name, uint8_t Binding, …)
{
std::pair<Symbol *, bool> P = insert(Name);
if (!P.second) { // symbol already in symbol table
if (auto *L = dyn_cast<Lazy>(P.first->body()))
addFile(L);
return P.first;
}
// symbol previously unseen
new (P.first->Body)...
2018 Jun 07
2
[lld] ObjFile::createRegular is oblivious of PendingComdat
...11 @@ Symbol *ObjFile::createRegular(COFFSymbolRef Sym) {
if (Sym.isExternal()) {
StringRef Name;
COFFObj->getSymbolName(Sym, Name);
- if (SC)
+ if (SC && SC != PendingComdat)
return Symtab->addRegular(this, Name, Sym.getGeneric(), SC);
return Symtab->addUndefined(Name, this, false);
}
- if (SC)
+ if (SC && SC != PendingComdat)
return make<DefinedRegular>(this, /*Name*/ "", false,
/*IsExternal*/ false, Sym.getGeneric(),
SC);
return nullptr;
I can upload this to Phabricator in case this is...
2018 Jun 07
2
[lld] ObjFile::createRegular is oblivious of PendingComdat
...gt; if (Sym.isExternal()) {
>> StringRef Name;
>> COFFObj->getSymbolName(Sym, Name);
>> - if (SC)
>> + if (SC && SC != PendingComdat)
>> return Symtab->addRegular(this, Name, Sym.getGeneric(), SC);
>> return Symtab->addUndefined(Name, this, false);
>> }
>> - if (SC)
>> + if (SC && SC != PendingComdat)
>> return make<DefinedRegular>(this, /*Name*/ "", false,
>> /*IsExternal*/ false, Sym.getGeneric(),
>> SC);
>> re...