Fix how the RUSTC_CTFE_BACKTRACE
env var is gotten. by nnethercote · Pull Request #68792 · rust-lang/rust (original) (raw)
I instrumented the function to dump the query stack at the time the function is called. Here's the results:
Count | Stack |
---|---|
5767192 | const_eval_raw, const_eval_validated, const_eval_validated, analysis |
270 | optimized_mir, const_eval_raw, const_eval_validated, const_eval_validated, analysis |
144 | const_eval_raw, const_eval_validated, const_eval_validated, optimized_mir, const_eval_raw, const_eval_validated, const_eval_validated, analysis |
43 | const_eval_validated, const_eval_validated, analysis |
6 | const_eval_validated, const_eval_validated, check_item_well_formed, analysis |
3 | const_eval_validated, const_eval_validated, typeck_tables_of, check_mod_item_types, analysis |
2 | const_eval_raw, const_eval_raw, const_eval_validated, const_eval_validated, analysis |
Backtrace for the top group:
An error occurred in miri:
stack backtrace:
0: <rustc::mir::interpret::error::InterpErrorInfo as core::convert::From<rustc::mir::interpret::error::InterpError>>::from
at src/librustc/mir/interpret/error.rs:248
1: <T as core::convert::Into<U>>::into
at src/libcore/convert/mod.rs:558
rustc_mir::interpret::memory::Memory<M>::get_fn_alloc
at src/librustc_mir/interpret/memory.rs:612
2: rustc_mir::interpret::memory::Memory<M>::get_size_and_align
at src/librustc_mir/interpret/memory.rs:563
3: rustc_mir::interpret::memory::Memory<M>::check_ptr_access_align
at src/librustc_mir/interpret/memory.rs:372
4: rustc_mir::interpret::memory::Memory<M>::check_ptr_access
at src/librustc_mir/interpret/memory.rs:321
rustc_mir::interpret::place::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::check_mplace_access
at src/librustc_mir/interpret/place.rs:359
rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::try_read_immediate_from_mplace
at src/librustc_mir/interpret/operand.rs:263
rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::try_read_immediate
at src/librustc_mir/interpret/operand.rs:316
5: rustc_mir::interpret::place::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::copy_op_no_validate
at src/librustc_mir/interpret/place.rs:863
6: rustc_mir::interpret::place::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::copy_op
at src/librustc_mir/interpret/place.rs:834
rustc_mir::interpret:🪜:<impl rustc_mir::interpret::eval_context::InterpCx<M>>::eval_rvalue_into_place
at src/librustc_mir/interpret/step.rs:150
7: rustc_mir::interpret:🪜:<impl rustc_mir::interpret::eval_context::InterpCx<M>>::statement
at src/librustc_mir/interpret/step.rs:91
rustc_mir::interpret:🪜:<impl rustc_mir::interpret::eval_context::InterpCx<M>>::step
at src/librustc_mir/interpret/step.rs:67
rustc_mir::interpret:🪜:<impl rustc_mir::interpret::eval_context::InterpCx<M>>::run
at src/librustc_mir/interpret/step.rs:34
8: rustc_mir::const_eval::eval_queries::eval_body_using_ecx
at src/librustc_mir/const_eval/eval_queries.rs:56
rustc_mir::const_eval::eval_queries::const_eval_raw_provider::{{closure}}
at src/librustc_mir/const_eval/eval_queries.rs:306
core::result::Result<T,E>::and_then
at src/libcore/result.rs:727
rustc_mir::const_eval::eval_queries::const_eval_raw_provider
at src/librustc_mir/const_eval/eval_queries.rs:306
9: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_raw>::compute::{{closure}}
at src/librustc/ty/query/plumbing.rs:951
rustc::ty::query::__query_compute::const_eval_raw
at src/librustc/ty/query/plumbing.rs:902
10: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_raw>::compute
at src/librustc/ty/query/plumbing.rs:943
11: rustc::dep_graph::graph::DepGraph::with_task_impl
at src/librustc/dep_graph/graph.rs:341
rustc::dep_graph::graph::DepGraph::with_task
at src/librustc/dep_graph/graph.rs:209
12: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:557
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::enter_context::{{closure}}
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::set_tlv
at src/librustc/ty/context.rs:1682
rustc::ty::context::tls::enter_context
at src/librustc/ty/context.rs:1697
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::with_related_context::{{closure}}
at src/librustc/ty/context.rs:1785
rustc::ty::context::tls::with_context::{{closure}}
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_context_opt
at src/librustc/ty/context.rs:1758
rustc::ty::context::tls::with_context
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_related_context
at src/librustc/ty/context.rs:1782
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at src/librustc/ty/query/plumbing.rs:267
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at src/librustc/ty/query/plumbing.rs:547
rustc::ty::query::plumbing::with_diagnostics
at src/librustc/ty/query/plumbing.rs:212
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at src/librustc/ty/query/plumbing.rs:546
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at src/librustc/ty/query/plumbing.rs:380
13: rustc::ty::query::TyCtxtAt::const_eval_raw
at src/librustc/ty/query/plumbing.rs:1057
rustc::ty::query::<impl rustc::ty::context::TyCtxt>::const_eval_raw
at src/librustc/ty/query/plumbing.rs:1020
rustc_mir::const_eval::eval_queries::const_eval_validated_provider
at src/librustc_mir/const_eval/eval_queries.rs:253
14: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_validated>::compute::{{closure}}
at src/librustc/ty/query/plumbing.rs:951
rustc::ty::query::__query_compute::const_eval_validated
at src/librustc/ty/query/plumbing.rs:902
15: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_validated>::compute
at src/librustc/ty/query/plumbing.rs:943
16: rustc::dep_graph::graph::DepGraph::with_task_impl
at src/librustc/dep_graph/graph.rs:341
rustc::dep_graph::graph::DepGraph::with_task
at src/librustc/dep_graph/graph.rs:209
17: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:557
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::enter_context::{{closure}}
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::set_tlv
at src/librustc/ty/context.rs:1682
rustc::ty::context::tls::enter_context
at src/librustc/ty/context.rs:1697
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::with_related_context::{{closure}}
at src/librustc/ty/context.rs:1785
rustc::ty::context::tls::with_context::{{closure}}
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_context_opt
at src/librustc/ty/context.rs:1758
rustc::ty::context::tls::with_context
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_related_context
at src/librustc/ty/context.rs:1782
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at src/librustc/ty/query/plumbing.rs:267
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at src/librustc/ty/query/plumbing.rs:547
rustc::ty::query::plumbing::with_diagnostics
at src/librustc/ty/query/plumbing.rs:212
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at src/librustc/ty/query/plumbing.rs:546
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at src/librustc/ty/query/plumbing.rs:380
18: rustc::ty::query::TyCtxtAt::const_eval_validated
at src/librustc/ty/query/plumbing.rs:1057
rustc::ty::query::<impl rustc::ty::context::TyCtxt>::const_eval_validated
at src/librustc/ty/query/plumbing.rs:1020
rustc_mir::const_eval::eval_queries::const_eval_validated_provider
at src/librustc_mir/const_eval/eval_queries.rs:230
19: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_validated>::compute::{{closure}}
at src/librustc/ty/query/plumbing.rs:951
rustc::ty::query::__query_compute::const_eval_validated
at src/librustc/ty/query/plumbing.rs:902
20: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_validated>::compute
at src/librustc/ty/query/plumbing.rs:943
21: rustc::dep_graph::graph::DepGraph::with_task_impl
at src/librustc/dep_graph/graph.rs:341
rustc::dep_graph::graph::DepGraph::with_task
at src/librustc/dep_graph/graph.rs:209
22: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:557
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::enter_context::{{closure}}
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::set_tlv
at src/librustc/ty/context.rs:1682
rustc::ty::context::tls::enter_context
at src/librustc/ty/context.rs:1697
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::with_related_context::{{closure}}
at src/librustc/ty/context.rs:1785
rustc::ty::context::tls::with_context::{{closure}}
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_context_opt
at src/librustc/ty/context.rs:1758
rustc::ty::context::tls::with_context
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_related_context
at src/librustc/ty/context.rs:1782
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at src/librustc/ty/query/plumbing.rs:267
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at src/librustc/ty/query/plumbing.rs:547
rustc::ty::query::plumbing::with_diagnostics
at src/librustc/ty/query/plumbing.rs:212
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at src/librustc/ty/query/plumbing.rs:546
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at src/librustc/ty/query/plumbing.rs:380
23: rustc::ty::query::TyCtxtAt::const_eval_validated
at src/librustc/ty/query/plumbing.rs:1057
rustc::ty::query::<impl rustc::ty::context::TyCtxt>::const_eval_validated
at src/librustc/ty/query/plumbing.rs:1020
rustc::mir::interpret::queries::<impl rustc::ty::context::TyCtxt>::const_eval_poly
at src/librustc/mir/interpret/queries.rs:22
24: <rustc_lint::builtin::UnusedBrokenConst as rustc_lint::passes::LateLintPass>::check_item
at src/librustc_lint/builtin.rs:0
25: <rustc_lint::BuiltinCombinedLateLintPass as rustc_lint::passes::LateLintPass>::check_item
at src/librustc_lint/passes.rs:113
26: <rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_item::{{closure}}::{{closure}}
at src/librustc_lint/late.rs:42
rustc_lint::late::LateContextAndPass<T>::with_param_env
at src/librustc_lint/late.rs:73
<rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_item::{{closure}}
at src/librustc_lint/late.rs:131
rustc_lint::late::LateContextAndPass<T>::with_lint_attrs
at src/librustc_lint/late.rs:61
<rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_item
at src/librustc_lint/late.rs:130
rustc_hir::intravisit::Visitor::visit_nested_item
at <::syntax::visit::walk_list macros>:2
27: rustc_hir::intravisit::walk_mod
at src/librustc_hir/intravisit.rs:455
28: rustc_lint::late::LateContextAndPass<T>::process_mod
at src/librustc_lint/late.rs:79
<rustc_lint::late::LateContextAndPass<T> as rustc_hir::intravisit::Visitor>::visit_mod
at src/librustc_lint/late.rs:236
29: rustc_hir::intravisit::walk_crate
at src/librustc_hir/intravisit.rs:441
30: rustc_lint::late::late_lint_pass_crate::{{closure}}
at src/librustc_lint/late.rs:427
rustc_lint::late::LateContextAndPass<T>::with_lint_attrs
at src/librustc_lint/late.rs:61
rustc_lint::late::late_lint_pass_crate
at src/librustc_lint/late.rs:422
rustc_lint::late::late_lint_crate
at src/librustc_lint/late.rs:441
31: rustc_lint::late::check_crate::{{closure}}::{{closure}}
at src/librustc_lint/late.rs:471
rustc_data_structures::profiling::VerboseTimingGuard::run
at src/librustc_data_structures/profiling.rs:555
rustc_session::utils::<impl rustc_session::session::Session>::time
at src/librustc_session/utils.rs:9
32: rustc_lint::late::check_crate::{{closure}}
at src/librustc_lint/late.rs:469
rustc_data_structures::sync::join
at src/librustc_data_structures/sync.rs:160
33: rustc_lint::late::check_crate
at src/librustc_lint/late.rs:467
rustc_interface::passes::analysis::{{closure}}::{{closure}}::{{closure}}::{{closure}}
at src/librustc_interface/passes.rs:866
rustc_data_structures::profiling::VerboseTimingGuard::run
at src/librustc_data_structures/profiling.rs:555
rustc_session::utils::<impl rustc_session::session::Session>::time
at src/librustc_session/utils.rs:9
34: rustc_interface::passes::analysis::{{closure}}::{{closure}}::{{closure}}
at src/librustc_interface/passes.rs:865
core::ops::function::FnOnce::call_once
at src/libcore/ops/function.rs:232
<std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at src/libstd/panic.rs:318
std::panicking::try::do_call
at src/libstd/panicking.rs:303
35: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:86
36: std::panicking::try
at src/libstd/panicking.rs:281
37: std::panic::catch_unwind
at src/libstd/panic.rs:394
rustc_interface::passes::analysis::{{closure}}::{{closure}}
at src/librustc_interface/passes.rs:852
core::ops::function::FnOnce::call_once
at src/libcore/ops/function.rs:232
<std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at src/libstd/panic.rs:318
38: std::panicking::try::do_call
at src/libstd/panicking.rs:303
39: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:86
40: std::panicking::try
at src/libstd/panicking.rs:281
41: std::panic::catch_unwind
at src/libstd/panic.rs:394
rustc_interface::passes::analysis::{{closure}}
at src/librustc_interface/passes.rs:848
rustc_data_structures::profiling::VerboseTimingGuard::run
at src/librustc_data_structures/profiling.rs:555
rustc_session::utils::<impl rustc_session::session::Session>::time
at src/librustc_session/utils.rs:9
42: rustc_interface::passes::analysis
at src/librustc_interface/passes.rs:847
43: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::analysis>::compute::{{closure}}
at src/librustc/ty/query/plumbing.rs:951
rustc::ty::query::__query_compute::analysis
at src/librustc/ty/query/plumbing.rs:902
44: rustc::dep_graph::graph::DepGraph::with_task_impl
at src/librustc/dep_graph/graph.rs:341
rustc::dep_graph::graph::DepGraph::with_eval_always_task
at src/librustc/dep_graph/graph.rs:388
45: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:549
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::enter_context::{{closure}}
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::set_tlv
at src/librustc/ty/context.rs:1682
rustc::ty::context::tls::enter_context
at src/librustc/ty/context.rs:1697
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
at src/librustc/ty/query/plumbing.rs:278
rustc::ty::context::tls::with_related_context::{{closure}}
at src/librustc/ty/context.rs:1785
rustc::ty::context::tls::with_context::{{closure}}
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_context_opt
at src/librustc/ty/context.rs:1758
rustc::ty::context::tls::with_context
at src/librustc/ty/context.rs:1769
rustc::ty::context::tls::with_related_context
at src/librustc/ty/context.rs:1782
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
at src/librustc/ty/query/plumbing.rs:267
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
at src/librustc/ty/query/plumbing.rs:547
rustc::ty::query::plumbing::with_diagnostics
at src/librustc/ty/query/plumbing.rs:212
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
at src/librustc/ty/query/plumbing.rs:546
rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
at src/librustc/ty/query/plumbing.rs:380
46: rustc::ty::query::TyCtxtAt::analysis
at src/librustc/ty/query/plumbing.rs:1057
rustc::ty::query::<impl rustc::ty::context::TyCtxt>::analysis
at src/librustc/ty/query/plumbing.rs:1020
rustc_driver::run_compiler::{{closure}}::{{closure}}::{{closure}}
at src/librustc_driver/lib.rs:390
rustc_interface::passes::QueryContext::enter::{{closure}}
at src/librustc_interface/passes.rs:696
rustc::ty::context::tls::enter_global::{{closure}}
at src/librustc/ty/context.rs:1720
rustc::ty::context::tls::enter_context::{{closure}}
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::set_tlv
at src/librustc/ty/context.rs:1682
rustc::ty::context::tls::enter_context
at src/librustc/ty/context.rs:1697
rustc::ty::context::tls::enter_global
at src/librustc/ty/context.rs:1720
47: rustc_interface::passes::QueryContext::enter
at src/librustc_interface/passes.rs:696
rustc_driver::run_compiler::{{closure}}::{{closure}}
at src/librustc_driver/lib.rs:390
rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
at src/librustc_interface/queries.rs:339
rustc_driver::run_compiler::{{closure}}
at src/librustc_driver/lib.rs:290
rustc_interface::interface::run_compiler_in_existing_thread_pool
at src/librustc_interface/interface.rs:186
48: rustc_interface::interface::run_compiler::{{closure}}
at src/librustc_interface/interface.rs:200
rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}
at src/librustc_interface/util.rs:155
scoped_tls::ScopedKey<T>::set
at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}
at src/librustc_interface/util.rs:151
scoped_tls::ScopedKey<T>::set
at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
syntax::attr::with_globals::{{closure}}
at src/libsyntax/attr/mod.rs:44
scoped_tls::ScopedKey<T>::set
at /home/wesley/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
49: syntax::attr::with_globals
at src/libsyntax/attr/mod.rs:44
50: rustc_interface::util::spawn_thread_pool::{{closure}}
at src/librustc_interface/util.rs:150
rustc_interface::util::scoped_thread::{{closure}}
at src/librustc_interface/util.rs:125
std::sys_common::backtrace::__rust_begin_short_backtrace
at src/libstd/sys_common/backtrace.rs:129
51: std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}
at src/libstd/thread/mod.rs:475
<std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
at src/libstd/panic.rs:318
std::panicking::try::do_call
at src/libstd/panicking.rs:303
52: __rust_maybe_catch_panic
at src/libpanic_unwind/lib.rs:86
53: std::panicking::try
at src/libstd/panicking.rs:281
54: std::panic::catch_unwind
at src/libstd/panic.rs:394
std::thread::Builder::spawn_unchecked::{{closure}}
at src/libstd/thread/mod.rs:474
core::ops::function::FnOnce::call_once{{vtable.shim}}
at src/libcore/ops/function.rs:232
55: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
at src/liballoc/boxed.rs:1016
56: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
at src/liballoc/boxed.rs:1016
57: std::sys_common::thread::start_thread
at src/libstd/sys_common/thread.rs:13
58: std::sys::unix::thread::Thread:🆕:thread_start
at src/libstd/sys/unix/thread.rs:80
59: start_thread
at /usr/src/debug/glibc-2.30-1.2.x86_64/nptl/pthread_create.c:479
60: __clone