diff options
| author | bors <bors@rust-lang.org> | 2019-03-03 16:46:12 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2019-03-03 16:46:12 +0000 |
| commit | 2cfd6444a7fb4bd6acef2b97ba53059adc0500a6 (patch) | |
| tree | d04772a8cd5ed241e7a8c13ddcaf7eaebaf0b0f3 /src/librustc_codegen_ssa | |
| parent | c0086b9e8972fef9fd4af24bae20d45021ed06c6 (diff) | |
| parent | 19a54e80934c802109ae7175cc824c22c672caa6 (diff) | |
| download | rust-2cfd6444a7fb4bd6acef2b97ba53059adc0500a6.tar.gz rust-2cfd6444a7fb4bd6acef2b97ba53059adc0500a6.zip | |
Auto merge of #58673 - matthewjasper:typeck-ptr-coercions, r=pnkfelix
[NLL] Type check operations with pointer types It seems these were forgotten about. Moving to `Rvalue::AddressOf` simplifies the coercions from references, but I want this to be fixed as soon as possible. r? @pnkfelix
Diffstat (limited to 'src/librustc_codegen_ssa')
| -rw-r--r-- | src/librustc_codegen_ssa/mir/rvalue.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/librustc_codegen_ssa/mir/rvalue.rs b/src/librustc_codegen_ssa/mir/rvalue.rs index b0c667a965d..b8131671320 100644 --- a/src/librustc_codegen_ssa/mir/rvalue.rs +++ b/src/librustc_codegen_ssa/mir/rvalue.rs @@ -257,7 +257,8 @@ impl<'a, 'tcx: 'a, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { } } } - mir::CastKind::Misc if bx.cx().is_backend_scalar_pair(operand.layout) => { + mir::CastKind::MutToConstPointer + | mir::CastKind::Misc if bx.cx().is_backend_scalar_pair(operand.layout) => { if let OperandValue::Pair(data_ptr, meta) = operand.val { if bx.cx().is_backend_scalar_pair(cast) { let data_cast = bx.pointercast(data_ptr, @@ -274,7 +275,8 @@ impl<'a, 'tcx: 'a, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> { bug!("Unexpected non-Pair operand") } } - mir::CastKind::Misc => { + mir::CastKind::MutToConstPointer + | mir::CastKind::Misc => { assert!(bx.cx().is_backend_immediate(cast)); let ll_t_out = bx.cx().immediate_backend_type(cast); if operand.layout.abi.is_uninhabited() { |
