@@ -595,6 +595,13 @@ namespace vast::conv::irstollvm
595
595
return mlir::success ();
596
596
};
597
597
598
+ auto null_to_ptr = [&] {
599
+ // TODO: deal with nullptr_t conversion
600
+ auto null = pattern.null_ptr (rewriter, op.getLoc (), dst_type);
601
+ rewriter.replaceOp (op, { null });
602
+ return mlir::success ();
603
+ };
604
+
598
605
auto int_to_ptr = [&] {
599
606
rewriter.template replaceOpWithNewOp < LLVM::IntToPtrOp >(op, dst_type, src);
600
607
return mlir::success ();
@@ -677,7 +684,7 @@ namespace vast::conv::irstollvm
677
684
if (src_bw > dst_bw) {
678
685
rewriter.template replaceOpWithNewOp < LLVM::FPTruncOp >(op , dst_type, src);
679
686
} else {
680
- rewriter.template replaceOpWithNewOp <mlir:: LLVM::FPExtOp>(op, dst_type, src);
687
+ rewriter.template replaceOpWithNewOp < LLVM::FPExtOp >(op, dst_type, src);
681
688
}
682
689
return mlir::success ();
683
690
};
@@ -702,7 +709,8 @@ namespace vast::conv::irstollvm
702
709
case hl::CastKind::ArrayToPointerDecay:
703
710
return arr_to_ptr_decay ();
704
711
// case hl::CastKind::FunctionToPointerDecay:
705
- // case hl::CastKind::NullToPointer:
712
+ case hl::CastKind::NullToPointer:
713
+ return null_to_ptr ();
706
714
// case hl::CastKind::NullToMemberPointer:
707
715
// case hl::CastKind::BaseToDerivedMemberPointer:
708
716
// case hl::CastKind::DerivedToBaseMemberPointer:
0 commit comments