@@ -184,8 +184,8 @@ class BinaryReaderIR : public BinaryReaderNop {
184184 Result OnTableSizeExpr (Index table_index) override ;
185185 Result OnTableFillExpr (Index table_index) override ;
186186 Result OnRefFuncExpr (Index func_index) override ;
187- Result OnRefNullExpr () override ;
188- Result OnRefIsNullExpr () override ;
187+ Result OnRefNullExpr (Type type ) override ;
188+ Result OnRefIsNullExpr (Type type ) override ;
189189 Result OnNopExpr () override ;
190190 Result OnRethrowExpr () override ;
191191 Result OnReturnExpr () override ;
@@ -213,7 +213,7 @@ class BinaryReaderIR : public BinaryReaderNop {
213213 Result EndElemSegmentInitExpr (Index index) override ;
214214 Result OnElemSegmentElemType (Index index, Type elem_type) override ;
215215 Result OnElemSegmentElemExprCount (Index index, Index count) override ;
216- Result OnElemSegmentElemExpr_RefNull (Index segment_index) override ;
216+ Result OnElemSegmentElemExpr_RefNull (Index segment_index, Type type ) override ;
217217 Result OnElemSegmentElemExpr_RefFunc (Index segment_index,
218218 Index func_index) override ;
219219
@@ -247,7 +247,7 @@ class BinaryReaderIR : public BinaryReaderNop {
247247 Result OnInitExprGlobalGetExpr (Index index, Index global_index) override ;
248248 Result OnInitExprI32ConstExpr (Index index, uint32_t value) override ;
249249 Result OnInitExprI64ConstExpr (Index index, uint64_t value) override ;
250- Result OnInitExprRefNull (Index index) override ;
250+ Result OnInitExprRefNull (Index index, Type type ) override ;
251251 Result OnInitExprRefFunc (Index index, Index func_index) override ;
252252
253253 Result OnDataSymbol (Index index, uint32_t flags, string_view name,
@@ -916,12 +916,12 @@ Result BinaryReaderIR::OnRefFuncExpr(Index func_index) {
916916 return AppendExpr (MakeUnique<RefFuncExpr>(Var (func_index)));
917917}
918918
919- Result BinaryReaderIR::OnRefNullExpr () {
920- return AppendExpr (MakeUnique<RefNullExpr>());
919+ Result BinaryReaderIR::OnRefNullExpr (Type type ) {
920+ return AppendExpr (MakeUnique<RefNullExpr>(type ));
921921}
922922
923- Result BinaryReaderIR::OnRefIsNullExpr () {
924- return AppendExpr (MakeUnique<RefIsNullExpr>());
923+ Result BinaryReaderIR::OnRefIsNullExpr (Type type ) {
924+ return AppendExpr (MakeUnique<RefIsNullExpr>(type ));
925925}
926926
927927Result BinaryReaderIR::OnNopExpr () {
@@ -1075,10 +1075,11 @@ Result BinaryReaderIR::OnElemSegmentElemExprCount(Index index, Index count) {
10751075 return Result::Ok;
10761076}
10771077
1078- Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull (Index segment_index) {
1078+ Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull (Index segment_index,
1079+ Type type) {
10791080 assert (segment_index == module_->elem_segments .size () - 1 );
10801081 ElemSegment* segment = module_->elem_segments [segment_index];
1081- segment->elem_exprs .emplace_back ();
1082+ segment->elem_exprs .emplace_back (type );
10821083 return Result::Ok;
10831084}
10841085
@@ -1228,9 +1229,9 @@ Result BinaryReaderIR::OnInitExprI64ConstExpr(Index index, uint64_t value) {
12281229 return Result::Ok;
12291230}
12301231
1231- Result BinaryReaderIR::OnInitExprRefNull (Index index) {
1232+ Result BinaryReaderIR::OnInitExprRefNull (Index index, Type type ) {
12321233 Location loc = GetLocation ();
1233- current_init_expr_->push_back (MakeUnique<RefNullExpr>(loc));
1234+ current_init_expr_->push_back (MakeUnique<RefNullExpr>(type, loc));
12341235 return Result::Ok;
12351236}
12361237
0 commit comments