summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/binary-reader-objdump.cc21
-rw-r--r--test/dump/func-result-multi.txt10
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]: