diff options
-rw-r--r-- | src/binary-reader-objdump.cc | 21 | ||||
-rw-r--r-- | test/dump/func-result-multi.txt | 10 |
2 files changed, 27 insertions, 4 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index 4b52f86e..054ac21f 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -1029,10 +1029,23 @@ Result BinaryReaderObjdump::OnType(Index index, printf("%s", GetTypeName(param_types[i])); } printf(") -> "); - if (result_count) { - printf("%s", GetTypeName(result_types[0])); - } else { - printf("nil"); + switch (result_count) { + case 0: + printf("nil"); + break; + case 1: + printf("%s", GetTypeName(result_types[0])); + break; + default: + printf("("); + for (Index i = 0; i < result_count; i++) { + if (i != 0) { + printf(", "); + } + printf("%s", GetTypeName(result_types[i])); + } + printf(")"); + break; } printf("\n"); return Result::Ok; diff --git a/test/dump/func-result-multi.txt b/test/dump/func-result-multi.txt index 0f7275be..e77ba445 100644 --- a/test/dump/func-result-multi.txt +++ b/test/dump/func-result-multi.txt @@ -1,5 +1,6 @@ ;;; TOOL: run-objdump ;;; ARGS0: -v --enable-multi-value +;;; ARGS1: -x (module (func (result i32 i64) i32.const 0 @@ -41,6 +42,15 @@ func-result-multi.wasm: file format wasm 0x1 +Section Details: + +Type[1]: + - type[0] () -> (i32, i64) +Function[1]: + - func[0] sig=0 +Code[1]: + - func[0] size=6 + Code Disassembly: 000018 func[0]: |