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 with 1.47 #6143

Closed
tylerhawkes opened this issue Oct 8, 2020 · 2 comments
Closed

ICE with 1.47 #6143

tylerhawkes opened this issue Oct 8, 2020 · 2 comments
Labels
C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@tylerhawkes
Copy link

tylerhawkes commented Oct 8, 2020

Code

fn main() {
    let r = R { repeat: 1 };
    // it is r.repeat() that causes the ICE
    println!("{}", r.repeat());
}

pub struct R {
  repeat: i16,
}

impl R {
  pub fn repeat(&self) -> i16 {
    self.repeat
  }
}

I'm running into this bug via some bindgen generated code it appears. Its parent module allows clippy::all and clippy::pedantic so it appears that clippy 1.47 is unusable on my project until this is fixed.

Meta

  • cargo clippy -V clippy 0.0.212 (18bf6b4 2020-10-07)
  • rustc -Vv:
 rustc 1.47.0 (18bf6b4f0 2020-10-07)
binary: rustc
commit-hash: 18bf6b4f01a6feaf7259ba7cdae58031af1b7b39
commit-date: 2020-10-07
host: x86_64-unknown-linux-gnu
release: 1.47.0
LLVM version: 11.0

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 1 but the index is 1', src/tools/clippy/clippy_lints/src/repeat_once.rs:44:93

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 (18bf6b4 2020-10-07)

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

stack backtrace:
   0:     0x7f7da6d66540 - std::backtrace_rs::backtrace::libunwind::trace::h577ea05e9ca4629a
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/libunwind.rs:96
   1:     0x7f7da6d66540 - std::backtrace_rs::backtrace::trace_unsynchronized::h50b9b72b84c7dd56
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/../../backtrace/src/backtrace/mod.rs:66
   2:     0x7f7da6d66540 - std::sys_common::backtrace::_print_fmt::h6541cf9823837fac
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:79
   3:     0x7f7da6d66540 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf64fbff071026df5
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:58
   4:     0x7f7da6dd4f4c - core::fmt::write::h9ddafa4860d8adff
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/fmt/mod.rs:1082
   5:     0x7f7da6d58867 - std::io::Write::write_fmt::h1d2ee292d2b65481
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/io/mod.rs:1514
   6:     0x7f7da6d6b200 - std::sys_common::backtrace::_print::ha25f9ff5080d886d
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:61
   7:     0x7f7da6d6b200 - std::sys_common::backtrace::print::h213e8aa8dc5405c0
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:48
   8:     0x7f7da6d6b200 - std::panicking::default_hook::{{closure}}::h6482fae49ef9d963
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:200
   9:     0x7f7da6d6af4c - std::panicking::default_hook::he30ad7589e0970f9
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:219
  10:     0x557213931971 - clippy_driver::report_clippy_ice::h2ed8a254b860d8f2
  11:     0x7f7da6d6b9a8 - std::panicking::rust_panic_with_hook::haa1ed36ada4ffb03
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:573
  12:     0x7f7da6d6b559 - std::panicking::begin_panic_handler::{{closure}}::h7001af1bb21aeaeb
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:476
  13:     0x7f7da6d669cc - std::sys_common::backtrace::__rust_end_short_backtrace::h39910f557f5f2367
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys_common/backtrace.rs:153
  14:     0x7f7da6d6b519 - rust_begin_unwind
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/panicking.rs:475
  15:     0x7f7da6dd19d1 - core::panicking::panic_fmt::h4e2659771ebc78eb
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/panicking.rs:85
  16:     0x7f7da6dd1992 - core::panicking::panic_bounds_check::h2e8c50d2fb4877c0
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/core/src/panicking.rs:62
  17:     0x557213963acb - <clippy_lints::repeat_once::RepeatOnce as rustc_lint::passes::LateLintPass>::check_expr::h52fafb3271e0d911
  18:     0x7f7dabce4d53 - <rustc_lint::late::LateLintPassObjects as rustc_lint::passes::LateLintPass>::check_expr::hd83a5b1b97bf9278
  19:     0x7f7da7cb6822 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h609ec79b83d8238c
  20:     0x7f7da7c45597 - rustc_hir::intravisit::walk_expr::haa842e94290c707b
  21:     0x7f7da7cb682d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h609ec79b83d8238c
  22:     0x7f7da7c459a2 - rustc_hir::intravisit::walk_expr::haa842e94290c707b
  23:     0x7f7da7cb682d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h609ec79b83d8238c
  24:     0x7f7da7c4541f - rustc_hir::intravisit::walk_expr::haa842e94290c707b
  25:     0x7f7da7cb682d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h609ec79b83d8238c
  26:     0x7f7da7c4575a - rustc_hir::intravisit::walk_expr::haa842e94290c707b
  27:     0x7f7da7cb682d - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_expr::h609ec79b83d8238c
  28:     0x7f7da7cb7190 - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_nested_body::h302b4575a1186d6b
  29:     0x7f7da7cb80af - <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_fn::he744336b89e2e301
  30:     0x7f7da7c41520 - rustc_hir::intravisit::walk_impl_item::he9956649714865e7
  31:     0x7f7da7cba762 - rustc_hir::intravisit::Visitor::visit_nested_impl_item::hb408907d8a4fde07
  32:     0x7f7da7c4682b - rustc_hir::intravisit::walk_item::h071cc9ec2e9589d3
  33:     0x7f7da7cb9b03 - rustc_hir::intravisit::Visitor::visit_nested_item::hfc9381c7e53be5fa
  34:     0x7f7da7c4602d - rustc_hir::intravisit::walk_item::h071cc9ec2e9589d3
  35:     0x7f7da7cb9b03 - rustc_hir::intravisit::Visitor::visit_nested_item::hfc9381c7e53be5fa
  36:     0x7f7da7c4602d - rustc_hir::intravisit::walk_item::h071cc9ec2e9589d3
  37:     0x7f7da7cb9b03 - rustc_hir::intravisit::Visitor::visit_nested_item::hfc9381c7e53be5fa
  38:     0x7f7da7c4013e - rustc_hir::intravisit::walk_crate::h5bbbc7259a4e1608
  39:     0x7f7da7ca3734 - rustc_lint::late::late_lint_pass_crate::hd6e9c4cf569820c8
  40:     0x7f7da7ca324c - rustc_lint::late::late_lint_crate::hd9a9fa2d97dda9d6
  41:     0x7f7da7cdc155 - rustc_data_structures::sync::join::hff6280a30a8d7599
  42:     0x7f7da7cd72a0 - rustc_session::utils::<impl rustc_session::session::Session>::time::h20fda3afa70f5804
  43:     0x7f7da7d2b415 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h1b9fd5fde69513f7
  44:     0x7f7da7cd8698 - rustc_session::utils::<impl rustc_session::session::Session>::time::h84985399d2763daa
  45:     0x7f7da7d298de - rustc_interface::passes::analysis::h53a03ad3e31afdf2
  46:     0x7f7da79edc2b - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute::hc51a2943f437e93c
  47:     0x7f7da79509b8 - rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps::ha5bb145fe11a8e51
  48:     0x7f7da79d1747 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::hf7835e47e05c0223
  49:     0x7f7da79e20d3 - rustc_data_structures::stack::ensure_sufficient_stack::h85807420ed8bd178
  50:     0x7f7da7978e33 - rustc_query_system::query::plumbing::get_query_impl::h980b5f2faab2c24e
  51:     0x7f7da79eeffa - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h36e3889d2dd335ca
  52:     0x7f7da7982f27 - rustc_span::with_source_map::h917ff6a1ba310be6
  53:     0x7f7da79f0513 - rustc_interface::interface::create_compiler_and_run::h66fad517fe94cf9c
  54:     0x7f7da79ce9fa - scoped_tls::ScopedKey<T>::set::h6552d51750c417dd
  55:     0x7f7da79e3957 - std::sys_common::backtrace::__rust_begin_short_backtrace::h9be1ba637b3b1d4f
  56:     0x7f7da796cdae - core::ops::function::FnOnce::call_once{{vtable.shim}}::h35e090da7a3676a1
  57:     0x7f7da6d7af5a - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h670c50864ac2cb92
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042
  58:     0x7f7da6d7af5a - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h2511952749086d81
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/alloc/src/boxed.rs:1042
  59:     0x7f7da6d7af5a - std::sys::unix::thread::Thread::new::thread_start::h5ad4ddffe24373a8
                               at /rustc/18bf6b4f01a6feaf7259ba7cdae58031af1b7b39/library/std/src/sys/unix/thread.rs:87
  60:     0x7f7da6cb1432 - start_thread
  61:     0x7f7da6a7e9d3 - __clone
  62:                0x0 - <unknown>

@tylerhawkes tylerhawkes added C-bug Category: Clippy is not doing the correct thing I-ICE Issue: Clippy panicked, giving an Internal Compilation Error (ICE) ❄️ labels Oct 8, 2020
@ebroto
Copy link
Member

ebroto commented Oct 8, 2020

Thanks for your issue report!

This should be fixed in 1.48 (#5948), could you please confirm?

@tylerhawkes
Copy link
Author

This works on beta.

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

2 participants