summaryrefslogtreecommitdiff
path: root/src/binary-reader-objdump.cc
diff options
context:
space:
mode:
authorOliver Horn <oliver.horn@gmx.net>2019-10-07 20:29:52 +0200
committerWouter van Oortmerssen <aardappel@gmail.com>2019-10-07 11:29:52 -0700
commit6d39c5876efbcae17df6c6d45d371b9194fb0b28 (patch)
tree2a97437a0755c421082028a1a2ecc4c30c72e353 /src/binary-reader-objdump.cc
parenta31934597195f97f1c4ec4fa6848eb6f05e45a73 (diff)
downloadwabt-6d39c5876efbcae17df6c6d45d371b9194fb0b28.tar.gz
wabt-6d39c5876efbcae17df6c6d45d371b9194fb0b28.tar.bz2
wabt-6d39c5876efbcae17df6c6d45d371b9194fb0b28.zip
wasm-objdump: Fix type signature for multi-value result types (#1179)
Previously only the first result type was printed, even for multiple results. This change prints multiple result types in parenthesized form whereas single result types are printed as before. The `func-result-multi.txt` test case is modified to cover the Type section as well.
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r--src/binary-reader-objdump.cc21
1 files changed, 17 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;