@@ -1156,14 +1156,14 @@ void ObjFile<ELFT>::initializeSymbols(const object::ELFFile<ELFT> &obj) {
11561156 fatal (toString (this ) + " : common symbol '" + sym->getName () +
11571157 " ' has invalid alignment: " + Twine (value));
11581158 hasCommonSyms = true ;
1159- sym->resolve (
1160- CommonSymbol{ this , StringRef (), binding, stOther, type, value, size});
1159+ sym->resolve (ctx, CommonSymbol{ this , StringRef (), binding, stOther, type,
1160+ value, size});
11611161 continue ;
11621162 }
11631163
11641164 // Handle global defined symbols. Defined::section will be set in postParse.
1165- sym->resolve (Defined{this , StringRef (), binding, stOther, type, value, size ,
1166- nullptr });
1165+ sym->resolve (ctx, Defined{this , StringRef (), binding, stOther, type, value,
1166+ size, nullptr });
11671167 }
11681168
11691169 // Undefined symbols (excluding those defined relative to non-prevailing
@@ -1175,8 +1175,8 @@ void ObjFile<ELFT>::initializeSymbols(const object::ELFFile<ELFT> &obj) {
11751175 for (unsigned i : undefineds) {
11761176 const Elf_Sym &eSym = eSyms[i];
11771177 Symbol *sym = symbols[i];
1178- sym->resolve (Undefined{this , StringRef (), eSym.getBinding (), eSym. st_other ,
1179- eSym.getType ()});
1178+ sym->resolve (ctx, Undefined{this , StringRef (), eSym.getBinding (),
1179+ eSym. st_other , eSym.getType ()});
11801180 sym->isUsedInRegularObj = true ;
11811181 sym->referenced = true ;
11821182 }
@@ -1759,20 +1759,20 @@ static void createBitcodeSymbol(Ctx &ctx, Symbol *&sym,
17591759 int c = objSym.getComdatIndex ();
17601760 if (objSym.isUndefined () || (c != -1 && !keptComdats[c])) {
17611761 Undefined newSym (&f, StringRef (), binding, visibility, type);
1762- sym->resolve (newSym);
1762+ sym->resolve (ctx, newSym);
17631763 sym->referenced = true ;
17641764 return ;
17651765 }
17661766
17671767 if (objSym.isCommon ()) {
1768- sym->resolve (CommonSymbol{&f, StringRef (), binding, visibility, STT_OBJECT ,
1769- objSym.getCommonAlignment (),
1770- objSym.getCommonSize ()});
1768+ sym->resolve (ctx, CommonSymbol{&f, StringRef (), binding, visibility,
1769+ STT_OBJECT, objSym.getCommonAlignment (),
1770+ objSym.getCommonSize ()});
17711771 } else {
17721772 Defined newSym (&f, StringRef (), binding, visibility, type, 0 , 0 , nullptr );
17731773 if (objSym.canBeOmittedFromSymbolTable ())
17741774 newSym.exportDynamic = false ;
1775- sym->resolve (newSym);
1775+ sym->resolve (ctx, newSym);
17761776 }
17771777}
17781778
@@ -1813,7 +1813,7 @@ void BitcodeFile::parseLazy() {
18131813 irSym.Name = uniqueSaver ().save (irSym.getName ());
18141814 if (!irSym.isUndefined ()) {
18151815 auto *sym = ctx.symtab ->insert (irSym.getName ());
1816- sym->resolve (LazySymbol{*this });
1816+ sym->resolve (ctx, LazySymbol{*this });
18171817 symbols[i] = sym;
18181818 }
18191819 }
@@ -1849,15 +1849,15 @@ void BinaryFile::parse() {
18491849
18501850 llvm::StringSaver &saver = lld::saver ();
18511851
1852- ctx.symtab ->addAndCheckDuplicate (Defined{this , saver.save (s + " _start" ),
1853- STB_GLOBAL, STV_DEFAULT, STT_OBJECT ,
1854- 0 , 0 , section});
1855- ctx.symtab ->addAndCheckDuplicate (Defined{ this , saver. save (s + " _end " ),
1856- STB_GLOBAL, STV_DEFAULT, STT_OBJECT ,
1857- data.size (), 0 , section});
1858- ctx.symtab ->addAndCheckDuplicate (Defined{ this , saver. save (s + " _size " ),
1859- STB_GLOBAL, STV_DEFAULT, STT_OBJECT ,
1860- data.size (), 0 , nullptr });
1852+ ctx.symtab ->addAndCheckDuplicate (ctx, Defined{this , saver.save (s + " _start" ),
1853+ STB_GLOBAL, STV_DEFAULT,
1854+ STT_OBJECT, 0 , 0 , section});
1855+ ctx.symtab ->addAndCheckDuplicate (
1856+ ctx, Defined{ this , saver. save (s + " _end " ), STB_GLOBAL, STV_DEFAULT,
1857+ STT_OBJECT, data.size (), 0 , section});
1858+ ctx.symtab ->addAndCheckDuplicate (
1859+ ctx, Defined{ this , saver. save (s + " _size " ), STB_GLOBAL, STV_DEFAULT,
1860+ STT_OBJECT, data.size (), 0 , nullptr });
18611861}
18621862
18631863InputFile *elf::createInternalFile (Ctx &ctx, StringRef name) {
@@ -1906,7 +1906,7 @@ template <class ELFT> void ObjFile<ELFT>::parseLazy() {
19061906 if (eSyms[i].st_shndx == SHN_UNDEF)
19071907 continue ;
19081908 symbols[i] = symtab->insert (CHECK (eSyms[i].getName (stringTable), this ));
1909- symbols[i]->resolve (LazySymbol{*this });
1909+ symbols[i]->resolve (ctx, LazySymbol{*this });
19101910 if (!lazy)
19111911 break ;
19121912 }
0 commit comments