-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pass FnAbi to find_mir_or_eval_fn #133103
Conversation
Some changes occurred to the CTFE machinery cc @rust-lang/wg-const-eval Some changes occurred to the CTFE / Miri interpreter cc @rust-lang/miri The Miri subtree was changed cc @rust-lang/miri |
@rustbot author |
@RalfJung There are some refactorings needed to remove |
This comment has been minimized.
This comment has been minimized.
Yeah, they should pass |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
bc545aa
to
79dce6a
Compare
This comment has been minimized.
This comment has been minimized.
☔ The latest upstream changes (presumably #134052) made this pull request unmergeable. Please resolve the merge conflicts. |
Interesting... for the same test, running on Linux will pass, but running on Windows will fail because of incompatible ABI. For future reference:
This means that for the exact same function, whether we should use EDIT: Ok nevermind, it's just I used |
8404ac5
to
64e95f8
Compare
This means that for the exact same function, whether we should use Conv::C or Conv::X86Stdcall depends on the target we are running? Or maybe I just did something bad somewhere...
Yes that makes sense, Windows has some special rules here.
|
I might continue to fix some cosmetic issues such as stray new lines, but this PR is ready for review @rustbot ready |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks pretty good. :) Just some minor comments.
src/tools/miri/src/helpers.rs
Outdated
if fn_abi.conv != exp_abi { | ||
throw_ub_format!( | ||
"calling a function with ABI {} using caller ABI {}", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just use debug formatting for the error for now. We do the same in interpret/call.rs
already.
The proper fix here would be a impl Display for Conv
somewhere near this. If you want you can do that in a future PR. :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I can open one after this.
@rustbot author |
Pass FnAbi to find_mir_or_eval_fn rust-lang/miri#4013 needs information from ``FnAbi``, hence it is passed to ``find_mir_or_eval_fn``. r? ``@RalfJung``
☔ The latest upstream changes (presumably #134381) made this pull request unmergeable. Please resolve the merge conflicts. |
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#133265 (Add a range argument to vec.extract_if) - rust-lang#133801 (Promote powerpc64le-unknown-linux-musl to tier 2 with host tools) - rust-lang#134323 (coverage: Dismantle `map_data.rs` by moving its responsibilities elsewhere) - rust-lang#134378 (An octuple of polonius fact generation cleanups) - rust-lang#134408 (Regression test for RPIT inheriting lifetime from projection) - rust-lang#134423 (bootstrap: use specific-purpose ui test path for `test_valid` self-test) - rust-lang#134426 (Fix typo in uint_macros.rs) Failed merges: - rust-lang#133103 (Pass FnAbi to find_mir_or_eval_fn) r? `@ghost` `@rustbot` modify labels: rollup
I will need some time to figure out how to resolve the merge conflict, and will request for r+ again after resolving it. |
9c7593e
to
45fc89a
Compare
Hmm this is weird, the import is valid and I didn't change anything from attr, but got this error: --> compiler/rustc_hir/src/hir.rs:5:5
|
5 | use rustc_ast::attr::AttributeExt;
| ^^^^^^^^^^^^^^^^^------------
| | |
| | help: a similar name exists in the module: `Attribute`
| no `AttributeExt` in `attr`
error[E0432]: unresolved import `rustc_ast::UnsafeBinderCastKind`
--> compiler/rustc_hir/src/hir.rs:14:57
|
14 | ImplPolarity, IsAuto, Movability, Mutability, UnOp, UnsafeBinderCastKind,
| ^^^^^^^^^^^^^^^^^^^^ no `UnsafeBinderCastKind` in the root
error[E0432]: unresolved import `rustc_ast::attr::AttributeExt`
--> compiler/rustc_hir/src/lang_items.rs:10:5
|
10 | use rustc_ast::attr::AttributeExt;
| ^^^^^^^^^^^^^^^^^------------
| | |
| | help: a similar name exists in the module: `Attribute`
| no `AttributeExt` in `attr`
For more information about this error, try `rustc --explain E0432`. @oli-obk since you reviewed #134381, do you know what's going on here and how to resolve this? |
That's weird. Sounds like a cache issue where it doesn't think a crate has changed when it acrually has. Worst case try |
This comment has been minimized.
This comment has been minimized.
|
☔ The latest upstream changes (presumably #134243) made this pull request unmergeable. Please resolve the merge conflicts. |
45fc89a
to
5454c95
Compare
5454c95
to
fd8b983
Compare
@bors r+ |
@bors ping |
😪 I'm awake I'm awake |
@bors r=RalfJung |
Rollup of 6 pull requests Successful merges: - rust-lang#126118 (docs: Mention `spare_capacity_mut()` in `Vec::set_len`) - rust-lang#132830 (Rename `elem_offset` to `element_offset`) - rust-lang#133103 (Pass FnAbi to find_mir_or_eval_fn) - rust-lang#134321 (Hide `= _` as associated constant value inside impl blocks) - rust-lang#134518 (fix typos in the example code in the doc comments of `Ipv4Addr::from_bits()`, `Ipv6Addr::from_bits()` & `Ipv6Addr::to_bits()`) - rust-lang#134521 (Arbitrary self types v2: roll loop.) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#133103 - tiif:fnabi, r=RalfJung Pass FnAbi to find_mir_or_eval_fn rust-lang/miri#4013 needs information from ``FnAbi``, hence it is passed to ``find_mir_or_eval_fn``. r? `@RalfJung`
rust-lang/miri#4013 needs information from
FnAbi
, hence it is passed tofind_mir_or_eval_fn
.r? @RalfJung