summaryrefslogtreecommitdiff
path: root/src/binary-reader-objdump.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/binary-reader-objdump.cc')
-rw-r--r--src/binary-reader-objdump.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc
index 77d207d2..f03283e7 100644
--- a/src/binary-reader-objdump.cc
+++ b/src/binary-reader-objdump.cc
@@ -475,6 +475,7 @@ class BinaryReaderObjdumpDisassemble : public BinaryReaderObjdumpBase {
Result OnBrTableExpr(Index num_targets,
Index* target_depths,
Index default_target_depth) override;
+ Result OnDelegateExpr(Index) override;
Result OnEndExpr() override;
Result OnEndFunc() override;
@@ -595,6 +596,7 @@ void BinaryReaderObjdumpDisassemble::LogOpcode(size_t data_size,
switch (current_opcode) {
case Opcode::Else:
case Opcode::Catch:
+ case Opcode::Unwind:
indent_level--;
default:
break;
@@ -741,6 +743,15 @@ Result BinaryReaderObjdumpDisassemble::OnBrTableExpr(
return Result::Ok;
}
+Result BinaryReaderObjdumpDisassemble::OnDelegateExpr(Index depth) {
+ // Because `delegate` ends the block we need to dedent here, and
+ // we don't need to dedent it in LogOpcode.
+ if (indent_level > 0) {
+ indent_level--;
+ }
+ return Result::Ok;
+}
+
Result BinaryReaderObjdumpDisassemble::OnEndFunc() {
LogOpcode(0, nullptr);
return Result::Ok;