summaryrefslogtreecommitdiff
path: root/src/binary-writer.cc
diff options
context:
space:
mode:
authorAsumu Takikawa <asumu@igalia.com>2021-02-18 07:09:32 -0800
committerGitHub <noreply@github.com>2021-02-18 07:09:32 -0800
commitffb22e3c900e8246d806d2e9a765dc14251b33e8 (patch)
tree45c7d2caef95ac03b237e8b3c2f29fe1db9686b6 /src/binary-writer.cc
parent036a632a24679062e7fc891e7743195139bfa0a9 (diff)
downloadwabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.tar.gz
wabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.tar.bz2
wabt-ffb22e3c900e8246d806d2e9a765dc14251b33e8.zip
Update rethrow depth handling and catch_all opcode (#1608)
Give `catch_all` its own opcode: Previously `catch_all` shared an opcode with `else`, but the spec now allocates it the 0x19 opcode. Adjust rethrow depth semantics: Previously this had interpreted the rethrow depth argument as counting only catch blocks, but the spec has clarified that it should count all blocks (in a similar fashion as `br` and related instructions).
Diffstat (limited to 'src/binary-writer.cc')
-rw-r--r--src/binary-writer.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/binary-writer.cc b/src/binary-writer.cc
index 6ef3e71d..c744aca4 100644
--- a/src/binary-writer.cc
+++ b/src/binary-writer.cc
@@ -976,7 +976,7 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) {
case TryKind::Catch:
for (const Catch& catch_ : try_expr->catches) {
if (catch_.IsCatchAll()) {
- WriteOpcode(stream_, Opcode::Else);
+ WriteOpcode(stream_, Opcode::CatchAll);
} else {
WriteOpcode(stream_, Opcode::Catch);
WriteU32Leb128(stream_, GetEventVarDepth(&catch_.var),