- 
                Notifications
    You must be signed in to change notification settings 
- Fork 13.9k
Pass FnAbi to find_mir_or_eval_fn #133103
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
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 | 
| ☔ 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`
Implement Display for ``rustc_target::callconv::Conv`` Follow up of rust-lang#133103 (comment)
Rollup merge of rust-lang#135808 - tiif:conv_display, r=workingjubilee Implement Display for ``rustc_target::callconv::Conv`` Follow up of rust-lang#133103 (comment)
Implement Display for ``rustc_target::callconv::Conv`` Follow up of rust-lang/rust#133103 (comment)
rust-lang/miri#4013 needs information from
FnAbi, hence it is passed tofind_mir_or_eval_fn.r? @RalfJung