diff options
| author | Ben Kimock <kimockb@gmail.com> | 2024-02-18 19:42:27 -0500 |
|---|---|---|
| committer | Ben Kimock <kimockb@gmail.com> | 2024-03-11 18:19:17 -0400 |
| commit | 2eb9c6d49ef949c551892fa58270071f5e997416 (patch) | |
| tree | c76cf7d0f63ea5b6aad105407ab11ea5a71b7c7c /compiler/rustc_codegen_ssa/src | |
| parent | 8401645716b26a8b4c6974dc0680e55e81e9e8a1 (diff) | |
| download | rust-2eb9c6d49ef949c551892fa58270071f5e997416.tar.gz rust-2eb9c6d49ef949c551892fa58270071f5e997416.zip | |
Lower transmutes from int to pointer type as gep on null
Diffstat (limited to 'compiler/rustc_codegen_ssa/src')
| -rw-r--r-- | compiler/rustc_codegen_ssa/src/mir/rvalue.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs index 9ae82d4845e..65e90401701 100644 --- a/compiler/rustc_codegen_ssa/src/mir/rvalue.rs +++ b/compiler/rustc_codegen_ssa/src/mir/rvalue.rs @@ -306,11 +306,11 @@ impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { bx.bitcast(imm, to_backend_ty) } (Pointer(..), Pointer(..)) => bx.pointercast(imm, to_backend_ty), - (Int(..), Pointer(..)) => bx.inttoptr(imm, to_backend_ty), + (Int(..), Pointer(..)) => bx.ptradd(bx.const_null(bx.type_ptr()), imm), (Pointer(..), Int(..)) => bx.ptrtoint(imm, to_backend_ty), (F16 | F32 | F64 | F128, Pointer(..)) => { let int_imm = bx.bitcast(imm, bx.cx().type_isize()); - bx.inttoptr(int_imm, to_backend_ty) + bx.ptradd(bx.const_null(bx.type_ptr()), int_imm) } (Pointer(..), F16 | F32 | F64 | F128) => { let int_imm = bx.ptrtoint(imm, bx.cx().type_isize()); |
