1
Fork 0

miri native_calls: ensure we actually expose *mutable* provenance to the memory FFI can access

This commit is contained in:
Ralf Jung 2025-03-11 14:32:03 +01:00
parent 705421b522
commit 3846f94230
4 changed files with 12 additions and 3 deletions

View file

@ -679,6 +679,11 @@ impl<Prov: Provenance, Extra, Bytes: AllocBytes> Allocation<Prov, Extra, Bytes>
// Set provenance of all bytes to wildcard.
self.provenance.write_wildcards(self.len());
// Also expose the provenance of the interpreter-level allocation, so it can
// be written by FFI. The `black_box` is defensive programming as LLVM likes
// to (incorrectly) optimize away ptr2int casts whose result is unused.
std::hint::black_box(self.get_bytes_unchecked_raw_mut().expose_provenance());
Ok(())
}