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

ICE While Checking the Rust Compiler #6383

Closed
Nicholas-Baron opened this issue Nov 26, 2020 · 7 comments
Closed

ICE While Checking the Rust Compiler #6383

Nicholas-Baron opened this issue Nov 26, 2020 · 7 comments
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@Nicholas-Baron
Copy link

Code

Trying to run ./x.py clippy on the rust repo leads to an ICE, due to some code in library/core. Isolating the specific example

Meta

  • cargo clippy -V: clippy 0.0.212 (21dea46 2020-11-18)
  • rustc -Vv:
rustc 1.49.0-beta.1 (21dea46d8 2020-11-18)
binary: rustc
commit-hash: 21dea46d8347c8b4117c5567949703f0fbb51649
commit-date: 2020-11-18
host: x86_64-unknown-linux-gnu
release: 1.49.0-beta.1

Error output

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/tools/clippy/clippy_lints/src/methods/mod.rs:3904:68
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new

note: Clippy version: clippy 0.0.212 (21dea46 2020-11-18)

query stack during panic:
#0 [analysis] running analysis passes on this crate
end of query stack
Backtrace

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/tools/clippy/clippy_lints/src/methods/mod.rs:3904:68
stack backtrace:
 0: rust_begin_unwind
           at /rustc/21dea46d8347c8b4117c5567949703f0fbb51649/library/std/src/panicking.rs:495:5
 1: core::panicking::panic_fmt
           at /rustc/21dea46d8347c8b4117c5567949703f0fbb51649/library/core/src/panicking.rs:92:14
 2: core::panicking::panic
           at /rustc/21dea46d8347c8b4117c5567949703f0fbb51649/library/core/src/panicking.rs:50:5
 3: <clippy_lints::methods::Methods as rustc_lint::passes::LateLintPass>::check_expr
 4: <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_expr
 5: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr
 6: rustc_hir::intravisit::walk_expr
 7: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr
 8: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_nested_body
 9: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn
10: rustc_hir::intravisit::walk_trait_item
11: rustc_hir::intravisit::Visitor::visit_nested_trait_item
12: rustc_hir::intravisit::walk_item
13: rustc_hir::intravisit::Visitor::visit_nested_item
14: rustc_hir::intravisit::walk_item
15: rustc_hir::intravisit::Visitor::visit_nested_item
16: rustc_hir::intravisit::walk_item
17: rustc_hir::intravisit::Visitor::visit_nested_item
18: rustc_hir::intravisit::walk_item
19: rustc_hir::intravisit::Visitor::visit_nested_item
20: rustc_hir::intravisit::walk_crate
21: rustc_lint::late::late_lint_pass_crate
22: rustc_session::utils::<impl rustc_session::session::Session>::time
23: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
24: rustc_session::utils::<impl rustc_session::session::Session>::time
25: rustc_interface::passes::analysis
26: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
27: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
28: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
29: rustc_data_structures::stack::ensure_sufficient_stack
30: rustc_query_system::query::plumbing::get_query_impl
31: rustc_interface::passes::QueryContext::enter
32: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
33: rustc_span::with_source_map
34: rustc_interface::interface::create_compiler_and_run
35: rustc_span::with_session_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

@Nicholas-Baron Nicholas-Baron added C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️ labels Nov 26, 2020
@giraffate
Copy link
Contributor

Thanks for your report! This might have been fixed by #6304.

@flip1995
Copy link
Member

Yep, this has fixed it. Thanks for noticing @giraffate. And thanks for all the triage work you're doing for Clippy in general! ❤️ 🦀

@Nicholas-Baron
Copy link
Author

@giraffate @flip1995
I updated clippy and it is still not fixed for me.
New output:

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/tools/clippy/clippy_lints/src/methods/mod.rs:3904:68
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new

note: Clippy version: clippy 0.0.212 (bd26e4e 2020-11-24)

New backtrace:

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', src/tools/clippy/clippy_lints/src/methods/mod.rs:3904:68
stack backtrace:
   0: rust_begin_unwind
             at /rustc/bd26e4e544992e52f2080906f71b2f1e6dc1b14a/library/std/src/panicking.rs:495:5
   1: core::panicking::panic_fmt
             at /rustc/bd26e4e544992e52f2080906f71b2f1e6dc1b14a/library/core/src/panicking.rs:92:14
   2: core::panicking::panic
             at /rustc/bd26e4e544992e52f2080906f71b2f1e6dc1b14a/library/core/src/panicking.rs:50:5
   3: <clippy_lints::methods::Methods as rustc_lint::passes::LateLintPass>::check_expr
   4: <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_expr
   5: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr
   6: rustc_hir::intravisit::walk_expr
   7: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr
   8: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_nested_body
   9: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn
  10: rustc_hir::intravisit::walk_trait_item
  11: rustc_hir::intravisit::Visitor::visit_nested_trait_item
  12: rustc_hir::intravisit::walk_item
  13: rustc_hir::intravisit::Visitor::visit_nested_item
  14: rustc_hir::intravisit::walk_item
  15: rustc_hir::intravisit::Visitor::visit_nested_item
  16: rustc_hir::intravisit::walk_item
  17: rustc_hir::intravisit::Visitor::visit_nested_item
  18: rustc_hir::intravisit::walk_item
  19: rustc_hir::intravisit::Visitor::visit_nested_item
  20: rustc_hir::intravisit::walk_crate
  21: rustc_lint::late::late_lint_pass_crate
  22: rustc_session::utils::<impl rustc_session::session::Session>::time
  23: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
  24: rustc_session::utils::<impl rustc_session::session::Session>::time
  25: rustc_interface::passes::analysis
  26: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
  27: rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps
  28: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  29: rustc_data_structures::stack::ensure_sufficient_stack
  30: rustc_query_system::query::plumbing::get_query_impl
  31: rustc_interface::passes::QueryContext::enter
  32: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  33: rustc_span::with_source_map
  34: rustc_interface::interface::create_compiler_and_run
  35: rustc_span::with_session_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

@flip1995 flip1995 reopened this Nov 26, 2020
@giraffate
Copy link
Contributor

Thanks for your new report! In rust-lang/rust at bd26e4e, it looks like #6304 wasn't still synced back to rust-lang/rust. So I guess this will be fixed if syncing back process is done.

@matthiaskrgr
Copy link
Member

Yeah, can't reproduce when using latest clippy from this repo on the rustc repo via x.py clippy.
I would personally close this as "fixed upstream"( = in this clippy repo).

@flip1995
Copy link
Member

Yeah, can't reproduce when using latest clippy from this repo on the rustc repo via x.py clippy.

How do you do this? When I tried it, I got the classic "has to have a known size at compile time" errors. I tried to run ./x.py clippy after installing it from the Clippy repo cargo +master install --path . --force.

@matthiaskrgr
Copy link
Member

I get the latest master toolchain rustup-toolchain-install-master -n master -f -c rustc-dev llvm-tools rust-src clippy
I compile clippy with that cargo +master build --release
I "install" that clippy into the master toolchain cd target/release; cp -f cargo-clippy clippy-driver ~/.rustup/toolchains/master/bin
I set the master toolchain as default temporarily rustup default master
Then I can use that clippy on rustc: ./x.py clippy which usually works fine then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

4 participants