Skip to content

Conversation

@Strophox
Copy link
Contributor

Following #126787, the purpose of this PR is to now enable Miri to execute native calls that make use of pointers.

Simple example
extern "C" {
    fn ptr_printer(ptr: *mut i32);
}

fn main() {
    let ptr = &mut 42 as *mut i32;
    unsafe {
        ptr_printer(ptr);
    }
}
void ptr_printer(int *ptr) {
  printf("printing pointer dereference from C: %d\n", *ptr);
}

should now show printing pointer dereference from C: 42.

Note that this PR does not yet implement any logic involved in updating Miri's "analysis" state (byte initialization, provenance) upon such a native call.

r? @RalfJung

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Aug 28, 2024
@rustbot
Copy link
Collaborator

rustbot commented Aug 28, 2024

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

Some changes occurred to the CTFE / Miri engine

cc @rust-lang/miri

The Miri subtree was changed

cc @rust-lang/miri

@Strophox
Copy link
Contributor Author

Oh. Well that didn't work yet.

@@ -1 +1,2 @@
printing from C
printing pointer dereference from C: 42
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎉

@rust-log-analyzer

This comment has been minimized.

@Strophox
Copy link
Contributor Author

(I might quickly try to enhance+refactor the C pointer FFI tests in Miri now.)

@Strophox Strophox force-pushed the miri-pass-pointer-to-ffi branch from dcdb101 to 6e23a4d Compare August 30, 2024 09:04
Copy link
Member

@RalfJung RalfJung left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good overall, thanks! Just got some nits regarding the tests.

@RalfJung
Copy link
Member

Please squash the commits, then we can land this. :-)

Co-authored-by: Ralf Jung <post@ralfj.de>
@Strophox Strophox force-pushed the miri-pass-pointer-to-ffi branch from 730bd97 to 7fde02e Compare August 30, 2024 14:12
@RalfJung
Copy link
Member

Great, congrats on getting this finished!

@bors r+

@bors
Copy link
Collaborator

bors commented Aug 31, 2024

📌 Commit 7fde02e has been approved by RalfJung

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Aug 31, 2024
@bors bors merged commit a5fb8b9 into rust-lang:master Aug 31, 2024
@rustbot rustbot added this to the 1.82.0 milestone Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants