diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-04-12 17:04:32 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-12 17:04:32 +0200 |
| commit | bb037e6fa776f9c8e28e4f0668adeb2824c415f7 (patch) | |
| tree | cab7a0d458f1a610f1ffed45dbc1d521bff01053 /compiler | |
| parent | 2118667ffa35e4e5dd1c31fd5d8011d3bf6bd5ab (diff) | |
| parent | cecb901e683cdc1a2ffbb1e331ba4f262e2215c0 (diff) | |
| download | rust-bb037e6fa776f9c8e28e4f0668adeb2824c415f7.tar.gz rust-bb037e6fa776f9c8e28e4f0668adeb2824c415f7.zip | |
Rollup merge of #110190 - cbeuw:mir-offset, r=oli-obk
Custom MIR: Support `BinOp::Offset` Since offset doesn't have an infix operator, a new function `Offset` is added which is lowered to `Rvalue::BinaryOp(BinOp::Offset, ..)` r? ```@oli-obk``` or ```@tmiasko``` or ```@JakobDegen```
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_mir_build/src/build/custom/parse/instruction.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/compiler/rustc_mir_build/src/build/custom/parse/instruction.rs b/compiler/rustc_mir_build/src/build/custom/parse/instruction.rs index 54028dfe87b..931fe1b2433 100644 --- a/compiler/rustc_mir_build/src/build/custom/parse/instruction.rs +++ b/compiler/rustc_mir_build/src/build/custom/parse/instruction.rs @@ -148,6 +148,11 @@ impl<'tcx, 'body> ParseCtxt<'tcx, 'body> { )), ) }, + @call("mir_offset", args) => { + let ptr = self.parse_operand(args[0])?; + let offset = self.parse_operand(args[1])?; + Ok(Rvalue::BinaryOp(BinOp::Offset, Box::new((ptr, offset)))) + }, @call("mir_len", args) => Ok(Rvalue::Len(self.parse_place(args[0])?)), ExprKind::Borrow { borrow_kind, arg } => Ok( Rvalue::Ref(self.tcx.lifetimes.re_erased, *borrow_kind, self.parse_place(*arg)?) |
