Skip to content
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

miri no longer builds after rust-lang/rust#93138 #93149

Closed
rust-highfive opened this issue Jan 21, 2022 · 5 comments
Closed

miri no longer builds after rust-lang/rust#93138 #93149

rust-highfive opened this issue Jan 21, 2022 · 5 comments
Assignees
Labels
A-miri Area: The miri tool C-bug Category: This is a bug.

Comments

@rust-highfive
Copy link
Collaborator

Hello, this is your friendly neighborhood mergebot.
After merging PR #93138, I observed that the tool miri has failing tests.
A follow-up PR to the repository https://github.com/rust-lang/miri is needed to fix the fallout.

cc @matthiaskrgr, do you think you would have time to do the follow-up work?
If so, that would be great!

@rust-highfive rust-highfive added A-miri Area: The miri tool C-bug Category: This is a bug. labels Jan 21, 2022
@nico-abram
Copy link
Contributor

I tried running tests locally against the PR's commit, seems to be failing async-fn and generator. My guess looking at the PRs in the rollup is #91032

This is where it fails on async-fn https://github.com/rust-lang/miri/blob/9983e0fc634e11717eb457a73fe84cfc9409ba8f/tests/run-pass/async-fn.rs#L26-L41

Here's the output:

error: internal compiler error: compiler/rustc_mir_transform/src/generator.rs:755:13: Broken MIR: generator contains type Never in MIR, but typeck only knows about {std::future::ResumeTy, bool, u32, impl std::future::Future<Output = [async output]>, (), impl std::future::Future<Output = [async output]>} and [bool, u32]
  --> $DIR/async-fn.rs:31:53
   |
31 |   async fn includes_never(crash: bool, x: u32) -> u32 {
   |  _____________________________________________________^
32 | |     let mut result = async { x * x }.await;
33 | |     if !crash {
34 | |         return result;
...  |
40 | |     result
41 | | }
   | |_^

@RalfJung
Copy link
Member

Yeah the ICE reproduces outside Miri.

@RalfJung
Copy link
Member

RalfJung commented Jan 21, 2022

Filed as separate bug: #93161

@eholk
Copy link
Contributor

eholk commented Jan 21, 2022

I have a small PR at #93165 that should unblock this issue. I'm going to be working on a proper fix today, which I expect will be pretty quick to come up with.

@RalfJung
Copy link
Member

Fixed by #93165

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-miri Area: The miri tool C-bug Category: This is a bug.
Projects
None yet
Development

No branches or pull requests

6 participants