Skip to content

Commit 362e34a

Browse files
committed
Use a 'flags' parameter instead of 'version'
1 parent f89e2d2 commit 362e34a

File tree

6 files changed

+13
-13
lines changed

6 files changed

+13
-13
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ extern "Rust" {
290290
///
291291
/// The fields must be declared in exactly the same order as they appear in `MiriFrame` above.
292292
/// This function can be called on any thread (not just the one which obtained `frame`)
293-
fn miri_resolve_frame(version: u8, frame: *mut ()) -> MiriFrame;
293+
fn miri_resolve_frame(frame: *mut (), flags: u64) -> MiriFrame;
294294

295295
/// Miri-provided extern function to begin unwinding with the given payload.
296296
///

src/shims/foreign_items.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -251,11 +251,11 @@ pub trait EvalContextExt<'mir, 'tcx: 'mir>: crate::MiriEvalContextExt<'mir, 'tcx
251251
// Resolves a Miri backtrace frame. See the README for details.
252252
"miri_resolve_frame" => {
253253
let tcx = this.tcx;
254-
let &[version, ptr] = check_arg_count(args)?;
254+
let &[ptr, flags] = check_arg_count(args)?;
255255

256-
let version = this.read_scalar(version)?.to_u8()?;
257-
if version != 0 {
258-
throw_ub_format!("Unknown `miri_resolve_frame` version {}", version);
256+
let flags = this.read_scalar(flags)?.to_u64()?;
257+
if flags != 0 {
258+
throw_ub_format!("Unknown `miri_resolve_frame` flags {}", flags);
259259
}
260260

261261
let ptr = match this.read_scalar(ptr)?.check_init()? {
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
extern "Rust" {
22
fn miri_get_backtrace() -> Box<[*mut ()]>;
3-
fn miri_resolve_frame(version: u8, ptr: *mut ());
3+
fn miri_resolve_frame(ptr: *mut (), flags: u64);
44
}
55

66
fn main() {
77
let frames = unsafe { miri_get_backtrace() };
88
for frame in frames.into_iter() {
99
unsafe {
10-
miri_resolve_frame(0, *frame); //~ ERROR Undefined Behavior: Bad declaration of miri_resolve_frame - should return a struct with 4 fields
10+
miri_resolve_frame(*frame, 0); //~ ERROR Undefined Behavior: Bad declaration of miri_resolve_frame - should return a struct with 4 fields
1111
}
1212
}
1313
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
extern "Rust" {
2-
fn miri_resolve_frame(version: u8, ptr: *mut ());
2+
fn miri_resolve_frame(ptr: *mut (), flags: u64);
33
}
44

55
fn main() {
66
unsafe {
7-
miri_resolve_frame(0, 0 as *mut _); //~ ERROR Undefined Behavior: Expected a pointer
7+
miri_resolve_frame(0 as *mut _, 0); //~ ERROR Undefined Behavior: Expected a pointer
88
}
99
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
extern "Rust" {
2-
fn miri_resolve_frame(version: u8, ptr: *mut ());
2+
fn miri_resolve_frame(ptr: *mut (), flags: u64);
33
}
44

55
fn main() {
66
unsafe {
7-
miri_resolve_frame(1, 0 as *mut _); //~ ERROR Undefined Behavior: Unknown `miri_resolve_frame` version 1
7+
miri_resolve_frame(0 as *mut _, 1); //~ ERROR Undefined Behavior: Unknown `miri_resolve_frame` flags 1
88
}
99
}

tests/run-pass/backtrace-api.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
extern "Rust" {
55
fn miri_get_backtrace() -> Box<[*mut ()]>;
6-
fn miri_resolve_frame(version: u8, ptr: *mut ()) -> MiriFrame;
6+
fn miri_resolve_frame(ptr: *mut (), flags: u64) -> MiriFrame;
77
}
88

99
#[derive(Debug)]
@@ -17,7 +17,7 @@ struct MiriFrame {
1717
fn main() {
1818
let frames = unsafe { miri_get_backtrace() };
1919
for frame in frames.into_iter() {
20-
let miri_frame = unsafe { miri_resolve_frame(0, *frame) };
20+
let miri_frame = unsafe { miri_resolve_frame(*frame, 0) };
2121
let name = String::from_utf8(miri_frame.name.into()).unwrap();
2222
let filename = String::from_utf8(miri_frame.filename.into()).unwrap();
2323
eprintln!("{}:{}:{} ({})", filename, miri_frame.lineno, miri_frame.colno, name);

0 commit comments

Comments
 (0)