Closed
Description
Branch ice
of the Amadeus repo triggers an ICE. The ICE can be avoided by adding #[inline(always)]
to the function identified in the error message.
git clone https://github.com/constellation-rs/amadeus.git
cd amadeus
git checkout ice
cargo +nightly-2020-06-10 test --features "aws"
Meta
With nightly-2019-10-15
two functions triggered this (see the most recent commit on the ice
branch). With nightly-2020-06-10
only one triggers it. My guess is inlining heuristics or similar have changed, making one of the functions inline thus avoiding triggering the ICE?
Error output
error: internal compiler error: src/librustc_mir/monomorphize/collector.rs:766: cannot create local mono-item for DefId(112:77 ~ amadeus_aws[d447]::cloudfront[0]::{{impl}}[2]::from_line[0])
Backtrace
$ RUST_BACKTRACE=1 cargo test --features "aws"
Compiling amadeus v0.2.0 (/Users/alecmocatta/Documents/deploy/amadeus)
error: internal compiler error: src/librustc_mir/monomorphize/collector.rs:766: cannot create local mono-item for DefId(112:77 ~ amadeus_aws[d447]::cloudfront[0]::{{impl}}[2]::from_line[0])
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
stack backtrace:
0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
1: core::fmt::write
2: std::io::Write::write_fmt
3: std::panicking::default_hook::{{closure}}
4: std::panicking::default_hook
5: rustc_driver::report_ice
6: std::panicking::rust_panic_with_hook
7: std::panicking::begin_panic
8: rustc_errors::HandlerInner::bug
9: rustc_errors::Handler::bug
10: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
11: rustc_middle::ty::context::tls::with_opt::{{closure}}
12: rustc_middle::ty::context::tls::with_opt
13: rustc_middle::util::bug::opt_span_bug_fmt
14: rustc_middle::util::bug::bug_fmt
15: rustc_mir::monomorphize::collector::should_monomorphize_locally
16: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator_kind
17: rustc_mir::monomorphize::collector::collect_neighbours
18: rustc_data_structures::stack::ensure_sufficient_stack
19: rustc_mir::monomorphize::collector::collect_items_rec
20: rustc_mir::monomorphize::collector::collect_items_rec
21: rustc_mir::monomorphize::collector::collect_items_rec
22: rustc_mir::monomorphize::collector::collect_items_rec
23: rustc_mir::monomorphize::collector::collect_items_rec
24: rustc_mir::monomorphize::collector::collect_items_rec
25: rustc_mir::monomorphize::collector::collect_items_rec
26: rustc_mir::monomorphize::collector::collect_items_rec
27: rustc_mir::monomorphize::collector::collect_items_rec
28: rustc_mir::monomorphize::collector::collect_items_rec
29: rustc_mir::monomorphize::collector::collect_items_rec
30: rustc_mir::monomorphize::collector::collect_items_rec
31: rustc_mir::monomorphize::collector::collect_items_rec
32: rustc_mir::monomorphize::collector::collect_items_rec
33: rustc_mir::monomorphize::collector::collect_items_rec
34: rustc_mir::monomorphize::collector::collect_items_rec
35: rustc_mir::monomorphize::collector::collect_items_rec
36: rustc_mir::monomorphize::collector::collect_items_rec
37: rustc_mir::monomorphize::collector::collect_items_rec
38: rustc_mir::monomorphize::collector::collect_items_rec
39: rustc_mir::monomorphize::collector::collect_items_rec
40: rustc_mir::monomorphize::collector::collect_items_rec
41: rustc_mir::monomorphize::collector::collect_items_rec
42: rustc_mir::monomorphize::collector::collect_items_rec
43: rustc_mir::monomorphize::collector::collect_items_rec
44: rustc_mir::monomorphize::collector::collect_items_rec
45: rustc_mir::monomorphize::collector::collect_items_rec
46: rustc_mir::monomorphize::collector::collect_items_rec
47: rustc_mir::monomorphize::collector::collect_items_rec
48: rustc_mir::monomorphize::collector::collect_items_rec
49: rustc_mir::monomorphize::collector::collect_items_rec
50: rustc_mir::monomorphize::collector::collect_items_rec
51: rustc_mir::monomorphize::collector::collect_items_rec
52: rustc_mir::monomorphize::collector::collect_items_rec
53: rustc_mir::monomorphize::collector::collect_items_rec
54: rustc_mir::monomorphize::collector::collect_items_rec
55: rustc_mir::monomorphize::collector::collect_items_rec
56: rustc_mir::monomorphize::collector::collect_items_rec
57: rustc_mir::monomorphize::collector::collect_items_rec
58: rustc_mir::monomorphize::collector::collect_items_rec
59: rustc_mir::monomorphize::collector::collect_items_rec
60: rustc_mir::monomorphize::collector::collect_items_rec
61: rustc_mir::monomorphize::collector::collect_items_rec
62: rustc_mir::monomorphize::collector::collect_items_rec
63: rustc_mir::monomorphize::collector::collect_items_rec
64: rustc_mir::monomorphize::collector::collect_items_rec
65: rustc_mir::monomorphize::collector::collect_items_rec
66: rustc_mir::monomorphize::collector::collect_items_rec
67: rustc_mir::monomorphize::collector::collect_items_rec
68: rustc_mir::monomorphize::collector::collect_items_rec
69: rustc_mir::monomorphize::collector::collect_items_rec
70: rustc_mir::monomorphize::collector::collect_items_rec
71: rustc_mir::monomorphize::collector::collect_items_rec
72: rustc_mir::monomorphize::collector::collect_items_rec
73: rustc_mir::monomorphize::collector::collect_items_rec
74: rustc_mir::monomorphize::collector::collect_items_rec
75: rustc_mir::monomorphize::collector::collect_items_rec
76: rustc_mir::monomorphize::collector::collect_items_rec
77: rustc_mir::monomorphize::collector::collect_items_rec
78: rustc_mir::monomorphize::collector::collect_items_rec
79: rustc_mir::monomorphize::collector::collect_items_rec
80: rustc_mir::monomorphize::collector::collect_items_rec
81: rustc_mir::monomorphize::collector::collect_items_rec
82: rustc_mir::monomorphize::collector::collect_items_rec
83: rustc_mir::monomorphize::collector::collect_items_rec
84: rustc_mir::monomorphize::collector::collect_items_rec
85: rustc_mir::monomorphize::collector::collect_items_rec
86: rustc_mir::monomorphize::collector::collect_items_rec
87: rustc_mir::monomorphize::collector::collect_items_rec
88: rustc_mir::monomorphize::collector::collect_items_rec
89: rustc_mir::monomorphize::collector::collect_items_rec
90: rustc_mir::monomorphize::collector::collect_items_rec
91: rustc_mir::monomorphize::collector::collect_items_rec
92: rustc_mir::monomorphize::collector::collect_items_rec
93: rustc_mir::monomorphize::collector::collect_items_rec
94: rustc_mir::monomorphize::collector::collect_items_rec
95: rustc_mir::monomorphize::collector::collect_items_rec
96: rustc_mir::monomorphize::collector::collect_items_rec
97: rustc_mir::monomorphize::collector::collect_items_rec
98: rustc_mir::monomorphize::collector::collect_items_rec
99: rustc_mir::monomorphize::collector::collect_items_rec
100: rustc_mir::monomorphize::collector::collect_items_rec
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.46.0-nightly (feb3536eb 2020-06-09) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental -C target-cpu=native
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: aborting due to previous error
error: could not compile `amadeus`.
To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: internal compiler error: src/librustc_mir/monomorphize/collector.rs:766: cannot create local mono-item for DefId(112:77 ~ amadeus_aws[d447]::cloudfront[0]::{{impl}}[2]::from_line[0])
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
stack backtrace:
0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
1: core::fmt::write
2: std::io::Write::write_fmt
3: std::panicking::default_hook::{{closure}}
4: std::panicking::default_hook
5: rustc_driver::report_ice
6: std::panicking::rust_panic_with_hook
7: std::panicking::begin_panic
8: rustc_errors::HandlerInner::bug
9: rustc_errors::Handler::bug
10: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
11: rustc_middle::ty::context::tls::with_opt::{{closure}}
12: rustc_middle::ty::context::tls::with_opt
13: rustc_middle::util::bug::opt_span_bug_fmt
14: rustc_middle::util::bug::bug_fmt
15: rustc_mir::monomorphize::collector::should_monomorphize_locally
16: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator_kind
17: rustc_mir::monomorphize::collector::collect_neighbours
18: rustc_data_structures::stack::ensure_sufficient_stack
19: rustc_mir::monomorphize::collector::collect_items_rec
20: rustc_mir::monomorphize::collector::collect_items_rec
21: rustc_mir::monomorphize::collector::collect_items_rec
22: rustc_mir::monomorphize::collector::collect_items_rec
23: rustc_mir::monomorphize::collector::collect_items_rec
24: rustc_mir::monomorphize::collector::collect_items_rec
25: rustc_mir::monomorphize::collector::collect_items_rec
26: rustc_mir::monomorphize::collector::collect_items_rec
27: rustc_mir::monomorphize::collector::collect_items_rec
28: rustc_mir::monomorphize::collector::collect_items_rec
29: rustc_mir::monomorphize::collector::collect_items_rec
30: rustc_mir::monomorphize::collector::collect_items_rec
31: rustc_mir::monomorphize::collector::collect_items_rec
32: rustc_mir::monomorphize::collector::collect_items_rec
33: rustc_mir::monomorphize::collector::collect_items_rec
34: rustc_mir::monomorphize::collector::collect_items_rec
35: rustc_mir::monomorphize::collector::collect_items_rec
36: rustc_mir::monomorphize::collector::collect_items_rec
37: rustc_mir::monomorphize::collector::collect_items_rec
38: rustc_mir::monomorphize::collector::collect_items_rec
39: rustc_mir::monomorphize::collector::collect_items_rec
40: rustc_mir::monomorphize::collector::collect_items_rec
41: rustc_mir::monomorphize::collector::collect_items_rec
42: rustc_mir::monomorphize::collector::collect_items_rec
43: rustc_mir::monomorphize::collector::collect_items_rec
44: rustc_mir::monomorphize::collector::collect_items_rec
45: rustc_mir::monomorphize::collector::collect_items_rec
46: rustc_mir::monomorphize::collector::collect_items_rec
47: rustc_mir::monomorphize::collector::collect_items_rec
48: rustc_mir::monomorphize::collector::collect_items_rec
49: rustc_mir::monomorphize::collector::collect_items_rec
50: rustc_mir::monomorphize::collector::collect_items_rec
51: rustc_mir::monomorphize::collector::collect_items_rec
52: rustc_mir::monomorphize::collector::collect_items_rec
53: rustc_mir::monomorphize::collector::collect_items_rec
54: rustc_mir::monomorphize::collector::collect_items_rec
55: rustc_mir::monomorphize::collector::collect_items_rec
56: rustc_mir::monomorphize::collector::collect_items_rec
57: rustc_mir::monomorphize::collector::collect_items_rec
58: rustc_mir::monomorphize::collector::collect_items_rec
59: rustc_mir::monomorphize::collector::collect_items_rec
60: rustc_mir::monomorphize::collector::collect_items_rec
61: rustc_mir::monomorphize::collector::collect_items_rec
62: rustc_mir::monomorphize::collector::collect_items_rec
63: rustc_mir::monomorphize::collector::collect_items_rec
64: rustc_mir::monomorphize::collector::collect_items_rec
65: rustc_mir::monomorphize::collector::collect_items_rec
66: rustc_mir::monomorphize::collector::collect_items_rec
67: rustc_mir::monomorphize::collector::collect_items_rec
68: rustc_mir::monomorphize::collector::collect_items_rec
69: rustc_mir::monomorphize::collector::collect_items_rec
70: rustc_mir::monomorphize::collector::collect_items_rec
71: rustc_mir::monomorphize::collector::collect_items_rec
72: rustc_mir::monomorphize::collector::collect_items_rec
73: rustc_mir::monomorphize::collector::collect_items_rec
74: rustc_mir::monomorphize::collector::collect_items_rec
75: rustc_mir::monomorphize::collector::collect_items_rec
76: rustc_mir::monomorphize::collector::collect_items_rec
77: rustc_mir::monomorphize::collector::collect_items_rec
78: rustc_mir::monomorphize::collector::collect_items_rec
79: rustc_mir::monomorphize::collector::collect_items_rec
80: rustc_mir::monomorphize::collector::collect_items_rec
81: rustc_mir::monomorphize::collector::collect_items_rec
82: rustc_mir::monomorphize::collector::collect_items_rec
83: rustc_mir::monomorphize::collector::collect_items_rec
84: rustc_mir::monomorphize::collector::collect_items_rec
85: rustc_mir::monomorphize::collector::collect_items_rec
86: rustc_mir::monomorphize::collector::collect_items_rec
87: rustc_mir::monomorphize::collector::collect_items_rec
88: rustc_mir::monomorphize::collector::collect_items_rec
89: rustc_mir::monomorphize::collector::collect_items_rec
90: rustc_mir::monomorphize::collector::collect_items_rec
91: rustc_mir::monomorphize::collector::collect_items_rec
92: rustc_mir::monomorphize::collector::collect_items_rec
93: rustc_mir::monomorphize::collector::collect_items_rec
94: rustc_mir::monomorphize::collector::collect_items_rec
95: rustc_mir::monomorphize::collector::collect_items_rec
96: rustc_mir::monomorphize::collector::collect_items_rec
97: rustc_mir::monomorphize::collector::collect_items_rec
98: rustc_mir::monomorphize::collector::collect_items_rec
99: rustc_mir::monomorphize::collector::collect_items_rec
100: rustc_mir::monomorphize::collector::collect_items_rec
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.46.0-nightly (feb3536eb 2020-06-09) running on x86_64-apple-darwin
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental -C target-cpu=native
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: aborting due to previous error
Metadata
Metadata
Assignees
Labels
Area: Code generationCategory: This is a bug.Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable ExampleCall for participation: An issue has been fixed and does not reproduce, but no test has been added.Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: An error at monomorphization time.Helping to "clean up" bugs with minimal examples and bisectionsMedium priorityRelevant to the compiler team, which will review and decide on the PR/issue.