Open
Description
auto-reduced (treereduce-rust):
#![feature(trivial_bounds)]
#[derive(Debug)]
struct TwoStrs(str, str)
where
str: Sized;
original:
#[derive(Debug)]
struct Foo(i32);
#[derive(Debug)]
struct TwoStrs(str, str) where str: Sized;
Version information
rustc 1.78.0-nightly (bb594538f 2024-02-20)
binary: rustc
commit-hash: bb594538fc6e84213a6b8d5e165442570aa48923
commit-date: 2024-02-20
host: x86_64-unknown-linux-gnu
release: 1.78.0-nightly
LLVM version: 18.1.0
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc -Zmir-opt-level=5 -Zcrate-attr=feature(trivial_bounds) --crate-type=lib
Program output
warning: struct `TwoStrs` is never constructed
--> /tmp/icemaker_global_tempdir.d7BGTl8YHHxI/rustc_testrunner_tmpdir_reporting.Zw6CwslhbT5j/mvce.rs:2:8
|
2 | struct TwoStrs(str, str)
| ^^^^^^^
|
= note: `TwoStrs` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
warning: trait bound str: Sized does not depend on any type or lifetime parameters
--> /tmp/icemaker_global_tempdir.d7BGTl8YHHxI/rustc_testrunner_tmpdir_reporting.Zw6CwslhbT5j/mvce.rs:4:10
|
4 | str: Sized;
| ^^^^^
|
= note: `#[warn(trivial_bounds)]` on by default
error: internal compiler error: /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/compiler/rustc_const_eval/src/interpret/operand.rs:82:42: Got a scalar pair where a scalar was expected
thread 'rustc' panicked at compiler/rustc_middle/src/util/bug.rs:35:44:
Box<dyn Any>
stack backtrace:
0: 0x7ff23b050af6 - std::backtrace_rs::backtrace::libunwind::trace::h1eedb42239d9af6b
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/../../backtrace/src/backtrace/libunwind.rs:104:5
1: 0x7ff23b050af6 - std::backtrace_rs::backtrace::trace_unsynchronized::hf37e37075d32c152
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7ff23b050af6 - std::sys_common::backtrace::_print_fmt::h089ff4e21712e78d
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/sys_common/backtrace.rs:68:5
3: 0x7ff23b050af6 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h249f2f40a85530bd
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/sys_common/backtrace.rs:44:22
4: 0x7ff23b0a1a7c - core::fmt::rt::Argument::fmt::h0aeed2b676ebf5da
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/core/src/fmt/rt.rs:142:9
5: 0x7ff23b0a1a7c - core::fmt::write::h25b3f5340152b6c4
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/core/src/fmt/mod.rs:1120:17
6: 0x7ff23b04542f - std::io::Write::write_fmt::h8746a81e0adfe285
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/io/mod.rs:1846:15
7: 0x7ff23b0508a4 - std::sys_common::backtrace::_print::hcf22409f3667d346
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/sys_common/backtrace.rs:47:5
8: 0x7ff23b0508a4 - std::sys_common::backtrace::print::h7d3fd33863df24d3
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/sys_common/backtrace.rs:34:9
9: 0x7ff23b0535eb - std::panicking::default_hook::{{closure}}::h69f3f4f5b3bceec1
10: 0x7ff23b053339 - std::panicking::default_hook::hf73563d650f0e118
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/panicking.rs:292:9
11: 0x7ff237e1a63c - std[38a2ac7f7aa65357]::panicking::update_hook::<alloc[250c3b7c6f6c60ed]::boxed::Box<rustc_driver_impl[98bdfcf9c8fb7ba2]::install_ice_hook::{closure#0}>>::{closure#0}
12: 0x7ff23b053d50 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h0f1d4fd9cb21869d
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/alloc/src/boxed.rs:2030:9
13: 0x7ff23b053d50 - std::panicking::rust_panic_with_hook::h55549baaf7aa2e9c
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/panicking.rs:786:13
14: 0x7ff237e47244 - std[38a2ac7f7aa65357]::panicking::begin_panic::<rustc_errors[31b00c9a61d6a627]::ExplicitBug>::{closure#0}
15: 0x7ff237e43e96 - std[38a2ac7f7aa65357]::sys_common::backtrace::__rust_end_short_backtrace::<std[38a2ac7f7aa65357]::panicking::begin_panic<rustc_errors[31b00c9a61d6a627]::ExplicitBug>::{closure#0}, !>
16: 0x7ff237e3f626 - std[38a2ac7f7aa65357]::panicking::begin_panic::<rustc_errors[31b00c9a61d6a627]::ExplicitBug>
17: 0x7ff237e51ad1 - <rustc_errors[31b00c9a61d6a627]::diagnostic_builder::BugAbort as rustc_errors[31b00c9a61d6a627]::diagnostic_builder::EmissionGuarantee>::emit_producing_guarantee
18: 0x7ff2382247ec - <rustc_errors[31b00c9a61d6a627]::DiagCtxt>::bug::<alloc[250c3b7c6f6c60ed]::string::String>
19: 0x7ff2382c76eb - rustc_middle[cfb3c689534e2244]::util::bug::opt_span_bug_fmt::<rustc_span[39701832932d6f53]::span_encoding::Span>::{closure#0}
20: 0x7ff2382ac41a - rustc_middle[cfb3c689534e2244]::ty::context::tls::with_opt::<rustc_middle[cfb3c689534e2244]::util::bug::opt_span_bug_fmt<rustc_span[39701832932d6f53]::span_encoding::Span>::{closure#0}, !>::{closure#0}
21: 0x7ff2382ac2b8 - rustc_middle[cfb3c689534e2244]::ty::context::tls::with_context_opt::<rustc_middle[cfb3c689534e2244]::ty::context::tls::with_opt<rustc_middle[cfb3c689534e2244]::util::bug::opt_span_bug_fmt<rustc_span[39701832932d6f53]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
22: 0x7ff236740bc0 - rustc_middle[cfb3c689534e2244]::util::bug::bug_fmt
23: 0x7ff2395a8f6b - <rustc_mir_transform[3a9949066bb08602]::gvn::VnState>::simplify_operand
24: 0x7ff2370be253 - <rustc_mir_transform[3a9949066bb08602]::gvn::GVN as rustc_middle[cfb3c689534e2244]::mir::MirPass>::run_pass
25: 0x7ff239012649 - rustc_mir_transform[3a9949066bb08602]::pass_manager::run_passes_inner
26: 0x7ff2394a84bf - rustc_mir_transform[3a9949066bb08602]::optimized_mir
27: 0x7ff239073c75 - rustc_query_impl[72e671e77ccdc0fd]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[72e671e77ccdc0fd]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[cfb3c689534e2244]::query::erase::Erased<[u8; 8usize]>>
28: 0x7ff239074321 - rustc_query_system[eb6d0acd22a0ff82]::query::plumbing::try_execute_query::<rustc_query_impl[72e671e77ccdc0fd]::DynamicConfig<rustc_query_system[eb6d0acd22a0ff82]::query::caches::DefIdCache<rustc_middle[cfb3c689534e2244]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[72e671e77ccdc0fd]::plumbing::QueryCtxt, false>
29: 0x7ff239073a9e - rustc_query_impl[72e671e77ccdc0fd]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
30: 0x7ff239453461 - rustc_middle[cfb3c689534e2244]::query::plumbing::query_get_at::<rustc_query_system[eb6d0acd22a0ff82]::query::caches::DefIdCache<rustc_middle[cfb3c689534e2244]::query::erase::Erased<[u8; 8usize]>>>
31: 0x7ff239f9d7fd - <rustc_metadata[7844668d1f998472]::rmeta::encoder::EncodeContext>::encode_crate_root
32: 0x7ff239fdf116 - rustc_metadata[7844668d1f998472]::rmeta::encoder::encode_metadata
33: 0x7ff239fdd2b8 - rustc_metadata[7844668d1f998472]::fs::encode_and_write_metadata
34: 0x7ff239fdc65d - rustc_interface[d43ea88de449c898]::passes::start_codegen
35: 0x7ff239fdbed8 - <rustc_interface[d43ea88de449c898]::queries::Queries>::codegen_and_build_linker
36: 0x7ff239d6482d - rustc_interface[d43ea88de449c898]::interface::run_compiler::<core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>, rustc_driver_impl[98bdfcf9c8fb7ba2]::run_compiler::{closure#0}>::{closure#0}
37: 0x7ff239fc1c05 - std[38a2ac7f7aa65357]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[d43ea88de449c898]::util::run_in_thread_with_globals<rustc_interface[d43ea88de449c898]::util::run_in_thread_pool_with_globals<rustc_interface[d43ea88de449c898]::interface::run_compiler<core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>, rustc_driver_impl[98bdfcf9c8fb7ba2]::run_compiler::{closure#0}>::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>
38: 0x7ff239fc1a32 - <<std[38a2ac7f7aa65357]::thread::Builder>::spawn_unchecked_<rustc_interface[d43ea88de449c898]::util::run_in_thread_with_globals<rustc_interface[d43ea88de449c898]::util::run_in_thread_pool_with_globals<rustc_interface[d43ea88de449c898]::interface::run_compiler<core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>, rustc_driver_impl[98bdfcf9c8fb7ba2]::run_compiler::{closure#0}>::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[9082f35584c4c405]::result::Result<(), rustc_span[39701832932d6f53]::ErrorGuaranteed>>::{closure#1} as core[9082f35584c4c405]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
39: 0x7ff23b05d725 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h8e2928e2096a726d
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/alloc/src/boxed.rs:2016:9
40: 0x7ff23b05d725 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h4f25e5317edfd617
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/alloc/src/boxed.rs:2016:9
41: 0x7ff23b05d725 - std::sys::pal::unix::thread::Thread::new::thread_start::hc7193b55f6b48c9a
at /rustc/bb594538fc6e84213a6b8d5e165442570aa48923/library/std/src/sys/pal/unix/thread.rs:108:17
42: 0x7ff234eaa9eb - <unknown>
43: 0x7ff234f2e7cc - <unknown>
44: 0x0 - <unknown>
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.78.0-nightly (bb594538f 2024-02-20) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z mir-opt-level=5 -Z crate-attr=feature(trivial_bounds) --crate-type lib -Z dump-mir-dir=dir
query stack during panic:
#0 [optimized_mir] optimizing MIR for `<impl at /tmp/icemaker_global_tempdir.d7BGTl8YHHxI/rustc_testrunner_tmpdir_reporting.Zw6CwslhbT5j/mvce.rs:1:10: 1:15>::fmt`
end of query stack
error: aborting due to 1 previous error; 2 warnings emitted
Metadata
Metadata
Assignees
Labels
Area: MIR optimizationsArea: MIR opt Global Value Numbering (GVN)Category: This is a bug.`#![feature(trivial_bounds)]`Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Status: This bug is tracked inside the repo by a `known-bug` test.Relevant to the compiler team, which will review and decide on the PR/issue.
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
matthiaskrgr commentedon Feb 20, 2024
this bisects to #117363 🤔 cc @saethlin
saethlin commentedon Feb 20, 2024
Can you try re-bisecting with
-Zcross-crate-inline-threshold=0
or-Zinline-mir=no
?matthiaskrgr commentedon Feb 21, 2024
with
-Zmir-opt-level=5 --crate-type=lib -Zinline-mir=no
, this bisects to #117727saethlin commentedon Feb 21, 2024
Good, that's what I expected. What does this bisect to?
(I just expanded your example and deleted the
#[inline]
)matthiaskrgr commentedon Feb 21, 2024
with
--edition=2021 -Zmir-opt-level=5 --crate-type=lib
also to #117363saethlin commentedon Feb 21, 2024
Whatever minimization you do should always try to turn off as many MIR optimizations as possible. The machine-accessible thing is to lower the
mir-opt-level
, because we don't have a machine-readable list of what passes are enabled that I'm aware of (perhaps you could extract one from logs, but no thanks).Bisecting with
-Zmir-opt-level=0
:saethlin commentedon Feb 21, 2024
To be clear, the reason you should try to do this is that the MIR optimization pipeline gets tweaked constantly, so if you just turn on all MIR optimizations possible, the bisection can easily get confused because among other things, the behavior of the inliner can fluctuate from nightly to nightly, even if the MIR optimization code wasn't changed.
Minimizing or eliminating the MIR optimizations involved in the reproducer helps with that effect a lot.
matthiaskrgr commentedon Feb 21, 2024
I have not been able to crash it with
-Zmir-opt-level=0
saethlin commentedon Feb 22, 2024
That's odd. I can crash godbolt: https://godbolt.org/z/haMGExKM6
9 remaining items