[WebAssembly] Fix getSymbolValue for exported globals
The code wasn't previously taking into account that the global index space is not same as the into in the Globals array since the latter does not include imported globals. This fixes the WebAssembly waterfall failures. Differential Revision: https://reviews.llvm.org/D37384 llvm-svn: 312340
This commit is contained in:
@@ -788,7 +788,7 @@ uint64_t WasmObjectFile::getSymbolValueImpl(DataRefImpl Symb) const {
|
||||
case WasmSymbol::SymbolType::FUNCTION_EXPORT:
|
||||
return Exports[Sym.ElementIndex].Index;
|
||||
case WasmSymbol::SymbolType::GLOBAL_EXPORT: {
|
||||
uint32_t GlobalIndex = Exports[Sym.ElementIndex].Index;
|
||||
uint32_t GlobalIndex = Exports[Sym.ElementIndex].Index - NumImportedGlobals;
|
||||
assert(GlobalIndex < Globals.size());
|
||||
const wasm::WasmGlobal& Global = Globals[GlobalIndex];
|
||||
return Global.InitExpr.Value.Int32;
|
||||
|
||||
Reference in New Issue
Block a user