summaryrefslogtreecommitdiff
path: root/llvm/tools/obj2yaml/wasm2yaml.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/obj2yaml/wasm2yaml.cpp')
-rw-r--r--llvm/tools/obj2yaml/wasm2yaml.cpp10
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);