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.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc
index c1feb2fe..371b9a82 100644
--- a/src/binary-reader-objdump.cc
+++ b/src/binary-reader-objdump.cc
@@ -683,6 +683,7 @@ enum class InitExprType {
F64,
V128,
Global,
+ NullRef,
};
struct InitExpr {
@@ -821,6 +822,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase {
Result OnInitExprGlobalGetExpr(Index index, Index global_index) override;
Result OnInitExprI32ConstExpr(Index index, uint32_t value) override;
Result OnInitExprI64ConstExpr(Index index, uint64_t value) override;
+ Result OnInitExprRefNull(Index index) override;
Result OnDylinkInfo(uint32_t mem_size,
uint32_t mem_align_log2,
@@ -1303,6 +1305,10 @@ void BinaryReaderObjdump::PrintInitExpr(const InitExpr& expr) {
PrintDetails("\n");
break;
}
+ case InitExprType::NullRef: {
+ PrintDetails(" - init nullref\n");
+ break;
+ }
}
}
@@ -1319,6 +1325,7 @@ static Result InitExprToConstOffset(const InitExpr& expr,
case InitExprType::F32:
case InitExprType::F64:
case InitExprType::V128:
+ case InitExprType::NullRef:
fprintf(stderr, "Segment/Elem offset must be an i32 init expr");
return Result::Error;
break;
@@ -1392,6 +1399,13 @@ Result BinaryReaderObjdump::OnInitExprI64ConstExpr(Index index,
return Result::Ok;
}
+Result BinaryReaderObjdump::OnInitExprRefNull(Index index) {
+ InitExpr expr;
+ expr.type = InitExprType::NullRef;
+ HandleInitExpr(expr);
+ return Result::Ok;
+}
+
Result BinaryReaderObjdump::OnModuleName(string_view name) {
PrintDetails(" - module <" PRIstringview ">\n",
WABT_PRINTF_STRING_VIEW_ARG(name));