document Miri extern functions
This commit is contained in:
parent
bc0569253f
commit
06f8bf6afa
23
README.md
23
README.md
@ -233,6 +233,29 @@ different Miri binaries, and as such worth documenting:
|
||||
interpret the code but compile it like rustc would. This is useful to be sure
|
||||
that the compiled `rlib`s are compatible with Miri.
|
||||
|
||||
## Miri `extern` functions
|
||||
|
||||
Miri provides some `extern` functions that programs can import to access
|
||||
Miri-specific functionality:
|
||||
|
||||
```rust
|
||||
#[cfg(miri)]
|
||||
extern "Rust" {
|
||||
/// Miri-provided extern function to mark the block `ptr` points to as a "root"
|
||||
/// for some static memory. This memory and everything reachable by it is not
|
||||
/// considered leaking even if it still exists when the program terminates.
|
||||
///
|
||||
/// `ptr` has to point to the beginning of an allocated block.
|
||||
fn miri_static_root(ptr: *const u8);
|
||||
|
||||
/// Miri-provided extern function to begin unwinding with the given payload.
|
||||
///
|
||||
/// This is internal and unstable and should not be used; we give it here
|
||||
/// just to be complete.
|
||||
fn miri_start_panic(payload: *mut u8) -> !;
|
||||
}
|
||||
```
|
||||
|
||||
## Contributing and getting help
|
||||
|
||||
If you want to contribute to Miri, great! Please check out our
|
||||
|
Loading…
x
Reference in New Issue
Block a user