@@ -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,
@@ -914,12 +914,12 @@ Result BinaryReaderIR::OnRefFuncExpr(Index func_index) {
914914 return AppendExpr (MakeUnique<RefFuncExpr>(Var (func_index)));
915915}
916916
917- Result BinaryReaderIR::OnRefNullExpr () {
918- return AppendExpr (MakeUnique<RefNullExpr>());
917+ Result BinaryReaderIR::OnRefNullExpr (Type type ) {
918+ return AppendExpr (MakeUnique<RefNullExpr>(type ));
919919}
920920
921- Result BinaryReaderIR::OnRefIsNullExpr () {
922- return AppendExpr (MakeUnique<RefIsNullExpr>());
921+ Result BinaryReaderIR::OnRefIsNullExpr (Type type ) {
922+ return AppendExpr (MakeUnique<RefIsNullExpr>(type ));
923923}
924924
925925Result BinaryReaderIR::OnNopExpr () {
@@ -1073,10 +1073,11 @@ Result BinaryReaderIR::OnElemSegmentElemExprCount(Index index, Index count) {
10731073 return Result::Ok;
10741074}
10751075
1076- Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull (Index segment_index) {
1076+ Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull (Index segment_index,
1077+ Type type) {
10771078 assert (segment_index == module_->elem_segments .size () - 1 );
10781079 ElemSegment* segment = module_->elem_segments [segment_index];
1079- segment->elem_exprs .emplace_back ();
1080+ segment->elem_exprs .emplace_back (type );
10801081 return Result::Ok;
10811082}
10821083
@@ -1226,9 +1227,9 @@ Result BinaryReaderIR::OnInitExprI64ConstExpr(Index index, uint64_t value) {
12261227 return Result::Ok;
12271228}
12281229
1229- Result BinaryReaderIR::OnInitExprRefNull (Index index) {
1230+ Result BinaryReaderIR::OnInitExprRefNull (Index index, Type type ) {
12301231 Location loc = GetLocation ();
1231- current_init_expr_->push_back (MakeUnique<RefNullExpr>(loc));
1232+ current_init_expr_->push_back (MakeUnique<RefNullExpr>(type, loc));
12321233 return Result::Ok;
12331234}
12341235
0 commit comments