diff options
Diffstat (limited to 'llvm/tools/obj2yaml/wasm2yaml.cpp')
-rw-r--r-- | llvm/tools/obj2yaml/wasm2yaml.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/tools/obj2yaml/wasm2yaml.cpp b/llvm/tools/obj2yaml/wasm2yaml.cpp index ad91acaeb26..a1120a96571 100644 --- a/llvm/tools/obj2yaml/wasm2yaml.cpp +++ b/llvm/tools/obj2yaml/wasm2yaml.cpp @@ -155,9 +155,13 @@ ErrorOr<WasmYAML::Object *> WasmDumper::dump() { for (const auto &FunctionSig : Obj.types()) { WasmYAML::Signature Sig; Sig.Index = Index++; - Sig.ReturnType = FunctionSig.ReturnType; - for (const auto &ParamType : FunctionSig.ParamTypes) - Sig.ParamTypes.push_back(ParamType); + Sig.ReturnType = wasm::WASM_TYPE_NORESULT; + assert(FunctionSig.Returns.size() <= 1 && + "Functions with multiple returns are not supported"); + if (FunctionSig.Returns.size()) + Sig.ReturnType = static_cast<uint32_t>(FunctionSig.Returns[0]); + for (const auto &ParamType : FunctionSig.Params) + Sig.ParamTypes.push_back(static_cast<uint32_t>(ParamType)); TypeSec->Signatures.push_back(Sig); } S = std::move(TypeSec); |