about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2023-03-27 16:30:50 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2023-03-27 16:30:50 +0000
commita5f11c7aebabf2c9dab45a2555ba8d00f18f91e6 (patch)
treee305ecad57f52b432ded346cd89580a31b17b0c7
parent0e50c9e4f36bec1ced66b92902eeb354db544487 (diff)
downloadrust-a5f11c7aebabf2c9dab45a2555ba8d00f18f91e6.tar.gz
rust-a5f11c7aebabf2c9dab45a2555ba8d00f18f91e6.zip
Avoid CValue::const_val in a couple of places
-rw-r--r--src/base.rs5
-rw-r--r--src/intrinsics/mod.rs4
2 files changed, 6 insertions, 3 deletions
diff --git a/src/base.rs b/src/base.rs
index 0d43e20f1c1..75a0db5aadb 100644
--- a/src/base.rs
+++ b/src/base.rs
@@ -767,7 +767,10 @@ fn codegen_stmt<'tcx>(
                         NullOp::SizeOf => layout.size.bytes(),
                         NullOp::AlignOf => layout.align.abi.bytes(),
                     };
-                    let val = CValue::const_val(fx, fx.layout_of(fx.tcx.types.usize), val.into());
+                    let val = CValue::by_val(
+                        fx.bcx.ins().iconst(fx.pointer_type, i64::try_from(val).unwrap()),
+                        fx.layout_of(fx.tcx.types.usize),
+                    );
                     lval.write_cvalue(fx, val);
                 }
                 Rvalue::Aggregate(ref kind, ref operands) => {
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 4166e763012..571af04f22c 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -1103,8 +1103,8 @@ fn codegen_regular_intrinsic_call<'tcx>(
 
             fx.bcx.ins().call_indirect(f_sig, f, &[data]);
 
-            let layout = ret.layout();
-            let ret_val = CValue::const_val(fx, layout, ty::ScalarInt::null(layout.size));
+            let layout = fx.layout_of(fx.tcx.types.i32);
+            let ret_val = CValue::by_val(fx.bcx.ins().iconst(types::I32, 0), layout);
             ret.write_cvalue(fx, ret_val);
         }