Changeset View
Changeset View
Standalone View
Standalone View
wasm/InputFiles.cpp
Show First 20 Lines • Show All 372 Lines • ▼ Show 20 Lines | |||||
} | } | ||||
Symbol *ObjFile::createUndefined(const WasmSymbol &Sym) { | Symbol *ObjFile::createUndefined(const WasmSymbol &Sym) { | ||||
StringRef Name = Sym.Info.Name; | StringRef Name = Sym.Info.Name; | ||||
uint32_t Flags = Sym.Info.Flags; | uint32_t Flags = Sym.Info.Flags; | ||||
switch (Sym.Info.Kind) { | switch (Sym.Info.Kind) { | ||||
case WASM_SYMBOL_TYPE_FUNCTION: | case WASM_SYMBOL_TYPE_FUNCTION: | ||||
return Symtab->addUndefinedFunction(Name, Flags, this, Sym.Signature); | return Symtab->addUndefinedFunction(Name, Sym.Info.Module, Flags, this, | ||||
Sym.Signature); | |||||
case WASM_SYMBOL_TYPE_DATA: | case WASM_SYMBOL_TYPE_DATA: | ||||
return Symtab->addUndefinedData(Name, Flags, this); | return Symtab->addUndefinedData(Name, Flags, this); | ||||
case WASM_SYMBOL_TYPE_GLOBAL: | case WASM_SYMBOL_TYPE_GLOBAL: | ||||
return Symtab->addUndefinedGlobal(Name, Flags, this, Sym.GlobalType); | return Symtab->addUndefinedGlobal(Name, Flags, this, Sym.GlobalType); | ||||
case WASM_SYMBOL_TYPE_SECTION: | case WASM_SYMBOL_TYPE_SECTION: | ||||
llvm_unreachable("section symbols cannot be undefined"); | llvm_unreachable("section symbols cannot be undefined"); | ||||
} | } | ||||
llvm_unreachable("unknown symbol kind"); | llvm_unreachable("unknown symbol kind"); | ||||
▲ Show 20 Lines • Show All 51 Lines • ▼ Show 20 Lines | static Symbol *createBitcodeSymbol(const lto::InputFile::Symbol &ObjSym, | ||||
BitcodeFile &F) { | BitcodeFile &F) { | ||||
StringRef Name = Saver.save(ObjSym.getName()); | StringRef Name = Saver.save(ObjSym.getName()); | ||||
uint32_t Flags = ObjSym.isWeak() ? WASM_SYMBOL_BINDING_WEAK : 0; | uint32_t Flags = ObjSym.isWeak() ? WASM_SYMBOL_BINDING_WEAK : 0; | ||||
Flags |= mapVisibility(ObjSym.getVisibility()); | Flags |= mapVisibility(ObjSym.getVisibility()); | ||||
if (ObjSym.isUndefined()) { | if (ObjSym.isUndefined()) { | ||||
if (ObjSym.isExecutable()) | if (ObjSym.isExecutable()) | ||||
return Symtab->addUndefinedFunction(Name, Flags, &F, nullptr); | return Symtab->addUndefinedFunction(Name, kDefaultModule, Flags, &F, nullptr); | ||||
return Symtab->addUndefinedData(Name, Flags, &F); | return Symtab->addUndefinedData(Name, Flags, &F); | ||||
} | } | ||||
if (ObjSym.isExecutable()) | if (ObjSym.isExecutable()) | ||||
return Symtab->addDefinedFunction(Name, Flags, &F, nullptr); | return Symtab->addDefinedFunction(Name, Flags, &F, nullptr); | ||||
return Symtab->addDefinedData(Name, Flags, &F, nullptr, 0, 0); | return Symtab->addDefinedData(Name, Flags, &F, nullptr, 0, 0); | ||||
} | } | ||||
Show All 23 Lines |