Index: llvm/trunk/lib/Object/WasmObjectFile.cpp =================================================================== --- llvm/trunk/lib/Object/WasmObjectFile.cpp +++ llvm/trunk/lib/Object/WasmObjectFile.cpp @@ -788,7 +788,7 @@ 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; Index: llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml =================================================================== --- llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml +++ llvm/trunk/test/tools/llvm-nm/wasm/exports.yaml @@ -1,4 +1,4 @@ -# RUN: yaml2obj < %s | llvm-nm - | FileCheck %s +# RUN: yaml2obj < %s | llvm-nm - | FileCheck -strict-whitespace %s # That wasm exports of functions and globals are displayed as global data and # code symbols. @@ -31,6 +31,17 @@ InitExpr: Opcode: I64_CONST Value: 1024 + - Type: IMPORT + Imports: + - Module: env + Field: fimport + Kind: FUNCTION + SigIndex: 0 + - Module: env + Field: gimport + Kind: GLOBAL + GlobalType: I32 + GlobalMutable: false - Type: EXPORT Exports: - Name: foo @@ -38,7 +49,9 @@ Index: 0x00000004 - Name: bar Kind: GLOBAL - Index: 0x00000002 + Index: 0x00000003 -# CHECK: 00000400 D bar -# CHECK: 00000004 T foo +# CHECK: 00000400 D bar +# CHECK-NEXT: U fimport +# CHECK-NEXT: 00000004 T foo +# CHECK-NEXT: U gimport Index: llvm/trunk/test/tools/llvm-nm/wasm/imports.yaml =================================================================== --- llvm/trunk/test/tools/llvm-nm/wasm/imports.yaml +++ llvm/trunk/test/tools/llvm-nm/wasm/imports.yaml @@ -1,4 +1,4 @@ -# RUN: yaml2obj < %s | llvm-nm - | FileCheck %s +# RUN: yaml2obj < %s | llvm-nm - | FileCheck -strict-whitespace %s --- !WASM FileHeader: Index: llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml =================================================================== --- llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml +++ llvm/trunk/test/tools/llvm-nm/wasm/weak-symbols.yaml @@ -1,4 +1,4 @@ -# RUN: yaml2obj < %s | llvm-nm - | FileCheck %s +# RUN: yaml2obj < %s | llvm-nm - | FileCheck -strict-whitespace %s # That wasm exports of functions and globals are displayed as global data and # code symbols. @@ -49,7 +49,7 @@ Index: 0x00000004 - Name: weak_global_data Kind: GLOBAL - Index: 0x00000002 + Index: 0x00000003 - Type: CUSTOM Name: linking DataSize: 0