Repository: rust
Issue: ICE: assertion failed: ptr::eq(context.tcx.gcx as *const _ as *const (), tcx.gcx as *const _ as *const ()), compiler/rustc_middle/src/ty/context/tls.rs
Labels: I-ICE,T-compiler,C-bug,A-LTO,S-needs-repro

<!--
Thank you for finding an Internal Compiler Error! 🧊  If possible, try to provide
a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for
how to create smaller examples.
http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/
-->

### Code
Something in the standard library. We caught this in our integration pipeline.

### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
1.71.0-nightly (9c51cf7e7 2023-04-19) running on x86_64-apple-darwin
```

### Error output

```
Building stage2 library artifacts (x86_64-apple-darwin -> x86_64-unknown-linux-gnu)
   Compiling cc v1.0.77
   Compiling core v0.0.0 (/opt/s/w/ir/x/w/fuchsia-third_party-rust/library/core)
   Compiling libc v0.2.140
   Compiling memchr v2.5.0
   Compiling std v0.0.0 (/opt/s/w/ir/x/w/fuchsia-third_party-rust/library/std)
   Compiling compiler_builtins v0.1.91
   Compiling unwind v0.0.0 (/opt/s/w/ir/x/w/fuchsia-third_party-rust/library/unwind)
   Compiling profiler_builtins v0.0.0 (/opt/s/w/ir/x/w/fuchsia-third_party-rust/library/profiler_builtins)
thread 'rustc' panicked at 'assertion failed: ptr::eq(context.tcx.gcx as *const _ as *const (),\n    tcx.gcx as *const _ as *const ())', /opt/s/w/ir/x/w/fuchsia-third_party-rust/compiler/rustc_middle/src/ty/context/tls.rs:126:9
stack backtrace:
   0: rust_begin_unwind
             at ./library/std/src/panicking.rs:578:5
   1: core::panicking::panic_fmt
             at ./library/core/src/panicking.rs:67:14
   2: core::panicking::panic
             at ./library/core/src/panicking.rs:117:5
   3: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::region_scope_tree, rustc_query_impl::plumbing::QueryCtxt>
   4: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::region_scope_tree
   5: <rustc_hir_typeck::fn_ctxt::FnCtxt>::resolve_rvalue_scopes
   6: rustc_hir_typeck::typeck
   7: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::typeck, rustc_query_impl::plumbing::QueryCtxt>
   8: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
   9: rustc_hir_typeck::typeck_item_bodies
  10: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::typeck_item_bodies, rustc_query_impl::plumbing::QueryCtxt>
  11: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck_item_bodies
  12: rustc_hir_analysis::check_crate
  13: rustc_interface::passes::analysis
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  16: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: the compiler unexpectedly panicked. this is a bug.
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.71.0-nightly (9c51cf7e7 2023-04-19) running on x86_64-apple-darwin
note: compiler flags: --crate-type lib -C opt-level=3 -C embed-bitcode=no -C codegen-units=1 -C debuginfo=2 -Z unstable-options -C linker=/opt/s/w/ir/x/w/cipd/bin/clang++ -C link-arg=--target=x86_64-unknown-linux-gnu -C link-arg=--sysroot=/opt/s/w/ir/x/w/cipd/linux -C link-arg=-fuse-ld=lld -C link-arg=-Wl,--undefined-version -C symbol-mangling-version=legacy -Z unstable-options -Z unstable-options -Z macro-backtrace -C link-args=-Wl,-z,origin -C link-args=-Wl,-rpath,$ORIGIN/../lib -C split-debuginfo=unpacked -C prefer-dynamic -Z inline-mir -C embed-bitcode=yes -Z crate-attr=doc(html_root_url="https://doc.rust-lang.org/nightly/") -Z binary-dep-depinfo -Z force-unstable-if-unmarked
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [typeck] type-checking `num::flt2dec::to_shortest_exp_str`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack
error: could not compile `core`
```

Link to full build output [here](https://logs.chromium.org/logs/fuchsia/buildbucket/cr-buildbucket/8783352442962811473/+/u/rust_install/stdout).

<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary><strong>Backtrace</strong></summary>
<p>

```
stack backtrace:
   0: rust_begin_unwind
             at ./library/std/src/panicking.rs:578:5
   1: core::panicking::panic_fmt
             at ./library/core/src/panicking.rs:67:14
   2: core::panicking::panic
             at ./library/core/src/panicking.rs:117:5
   3: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::region_scope_tree, rustc_query_impl::plumbing::QueryCtxt>
   4: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::region_scope_tree
   5: <rustc_hir_typeck::fn_ctxt::FnCtxt>::resolve_rvalue_scopes
   6: rustc_hir_typeck::typeck
   7: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::typeck, rustc_query_impl::plumbing::QueryCtxt>
   8: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck
   9: rustc_hir_typeck::typeck_item_bodies
  10: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::typeck_item_bodies, rustc_query_impl::plumbing::QueryCtxt>
  11: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck_item_bodies
  12: rustc_hir_analysis::check_crate
  13: rustc_interface::passes::analysis
  14: rustc_query_system::query::plumbing::try_execute_query::<rustc_query_impl::queries::analysis, rustc_query_impl::plumbing::QueryCtxt>
  15: <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::analysis
  16: <rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>>::enter::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}::{closure#2}::{closure#4}>
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
```

</p>
</details>