diff options
author | Alon Zakai <alonzakai@gmail.com> | 2016-02-01 10:39:27 -0800 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2016-02-01 10:48:06 -0800 |
commit | 27bdda2e01d83a5b4023a729ed2a427f1ee9fe41 (patch) | |
tree | eb1524591ec46122553cfc1b4aabd67339059032 /src | |
parent | d7e7328addef046ef103837e24e6df40645f4040 (diff) | |
download | binaryen-27bdda2e01d83a5b4023a729ed2a427f1ee9fe41.tar.gz binaryen-27bdda2e01d83a5b4023a729ed2a427f1ee9fe41.tar.bz2 binaryen-27bdda2e01d83a5b4023a729ed2a427f1ee9fe41.zip |
fix call_indirect s2wasm parsing order #162
Diffstat (limited to 'src')
-rw-r--r-- | src/s2wasm.h | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/src/s2wasm.h b/src/s2wasm.h index f1cc89586..8b6aabeb7 100644 --- a/src/s2wasm.h +++ b/src/s2wasm.h @@ -671,16 +671,12 @@ class S2WasmBuilder { // indirect call auto indirect = allocator.alloc<CallIndirect>(); Name assign = getAssign(); - indirect->target = getInput(); + int num = getNumInputs(); + auto inputs = getInputs(num); + indirect->target = inputs[0]; indirect->type = type; - skipWhitespace(); - if (*s == ',') { - skipComma(); - int num = getNumInputs(); - auto inputs = getInputs(num); - for (int i = 0; i < num; i++) { - indirect->operands.push_back(inputs[i]); - } + for (int i = 1; i < num; i++) { + indirect->operands.push_back(inputs[i]); } setOutput(indirect, assign); auto typeName = cashew::IString((std::string("FUNCSIG_") + getSig(indirect)).c_str(), false); |