rust/compiler/rustc_middle/src
Jubilee 9498d5cf2f
Rollup merge of #126787 - Strophox:get-bytes, r=RalfJung
Add direct accessors for memory addresses in `Machine` (for Miri)

The purpose of this PR is to enable direct (immutable) access to memory addresses in `Machine`, which will be needed for further extension of Miri.

This is done by adding (/completing missings pairs of) accessor functions, with the relevant signatures as follows:
```rust
/* rust/compiler/rustc_middle/src/mir/interpret/allocation.rs */

pub trait AllocBytes {
  // ..

  fn as_ptr(&self) -> *const u8;
/*fn as_mut_ptr(&mut self) -> *mut u8; -- Already in the compiler*/
}

impl<Prov: Provenance, Extra, Bytes: AllocBytes> Allocation<Prov, Extra, Bytes> {
  // ..

  pub fn get_bytes_unchecked_raw(&self) -> *const u8;
/*pub fn get_bytes_unchecked_raw_mut(&mut self) -> *mut u8; -- Already in the compiler*/
}
```
```rust
/* rust/compiler/rustc_const_eval/src/interpret/memory.rs */

impl<'tcx, M: Machine<'tcx>> InterpCx<'tcx, M> {
  // ..

  pub fn get_alloc_bytes_unchecked_raw(&self, id: AllocId) -> InterpResult<'tcx, *const u8>;
  pub fn get_alloc_bytes_unchecked_raw_mut(&mut self, id: AllocId) -> InterpResult<'tcx, *mut u8>;
}
```

r? ``@RalfJung``
2024-06-21 21:02:27 -07:00
..
dep_graph local_def_path_hash_to_def_id can fail 2024-06-19 07:45:47 -04:00
hir Revert "Create const block DefIds in typeck instead of ast lowering" 2024-06-07 08:33:58 +00:00
hooks Remove #[macro_use] extern crate tracing from rustc_middle. 2024-05-23 18:02:40 +10:00
infer Simplify IntVarValue/FloatVarValue 2024-06-01 10:31:32 -04:00
middle Add blank lines after module-level //! comments. 2024-06-20 09:23:20 +10:00
mir add as_ptr to trait AllocBytes, fix 2 impls; add pub fn get_bytes_unchecked_raw in allocation.rs; add pub fn get_alloc_bytes_unchecked_raw[_mut] in memory.rs 2024-06-21 12:50:24 +02:00
query Auto merge of #126409 - pacak:incr-uplorry, r=michaelwoerister 2024-06-20 09:06:16 +00:00
thir Track mutability of deref patterns 2024-04-20 15:59:54 +02:00
traits Rename a bunch of things 2024-06-21 12:32:05 -04:00
ty Rename a bunch of things 2024-06-21 12:32:05 -04:00
util Use is_lang_item more aggressively 2024-06-14 16:54:29 -04:00
arena.rs Uplift PredefinedOpaquesData 2024-06-18 10:40:30 -04:00
error.rs Remove extern crate rustc_macros from rustc_middle. 2024-04-29 11:19:16 +10:00
lib.rs Rollup merge of #125505 - aDotInTheVoid:middle-idl, r=pnkfelix 2024-06-05 18:21:09 +02:00
lint.rs Auto merge of #125410 - fmease:adj-lint-diag-api, r=nnethercote 2024-05-27 08:44:12 +00:00
macros.rs Use a dedicated type instead of a reference for the diagnostic context 2024-06-18 15:42:11 +00:00
metadata.rs Remove extern crate rustc_macros from rustc_middle. 2024-04-29 11:19:16 +10:00
tests.rs Give an item related to issue 27438 a more meaningful name 2024-04-30 22:27:19 +02:00
thir.rs ScalarInt: size mismatches are a bug, do not delay the panic 2024-06-10 13:43:16 +02:00
values.rs Use Variance glob import everywhere 2024-06-12 16:25:45 -04:00