diff options
author | Oliver Horn <oliver.horn@gmx.net> | 2019-10-07 20:29:52 +0200 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-10-07 11:29:52 -0700 |
commit | 6d39c5876efbcae17df6c6d45d371b9194fb0b28 (patch) | |
tree | 2a97437a0755c421082028a1a2ecc4c30c72e353 /src/binary-reader-objdump.cc | |
parent | a31934597195f97f1c4ec4fa6848eb6f05e45a73 (diff) | |
download | wabt-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.cc | 21 |
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; |