Skip to content

ICE: cfi: encode_ty_name: unexpected GlobalAsm #137473

@matthiaskrgr

Description

Code

//@compile-flags: -Zsanitizer=cfi -Ccodegen-units=1 -Clto -Clink-dead-code=true`
fn foo<const N: usize>() {}

core::arch::global_asm!("/* {} */", sym foo::<{
    || {};
    0
}>);

fn main() {}

Meta

rustc --version --verbose:

rustc 1.87.0-nightly (bca5f37cb 2025-02-23)
binary: rustc
commit-hash: bca5f37cbded0db8d37414bb08c4b101a5f26d36
commit-date: 2025-02-23
host: x86_64-unknown-linux-gnu
release: 1.87.0-nightly
LLVM version: 20.1.0

Error output

<output>
Backtrace

warning: unused closure that must be used
 --> a.rs:4:5
  |
4 |     || {};
  |     ^^^^^
  |
  = note: closures are lazy and do nothing unless called
  = note: `#[warn(unused_must_use)]` on by default

error: internal compiler error: compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/encode.rs:724:17: encode_ty_name: unexpected `GlobalAsm`


thread 'rustc' panicked at compiler/rustc_sanitizers/src/cfi/typeid/itanium_cxx_abi/encode.rs:724:17:
Box<dyn Any>
stack backtrace:
   0:     0x7df5c657d024 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hb2766718346e8914
   1:     0x7df5c6c162ec - core::fmt::write::h9a1616cb06c0cb0c
   2:     0x7df5c7c69851 - std::io::Write::write_fmt::ha495c1f1db9a43ed
   3:     0x7df5c657ce82 - std::sys::backtrace::BacktraceLock::print::hfcfc21e91f78122e
   4:     0x7df5c657f68e - std::panicking::default_hook::{{closure}}::hdbc3741f9d3f7a84
   5:     0x7df5c657f264 - std::panicking::default_hook::hc24bc002e7741aa1
   6:     0x7df5c56de2d7 - std[aff040118bb958da]::panicking::update_hook::<alloc[67af6a9cecfd7ba8]::boxed::Box<rustc_driver_impl[301a9b8b79b48566]::install_ice_hook::{closure#1}>>::{closure#0}
   7:     0x7df5c657ff03 - std::panicking::rust_panic_with_hook::hcb6606e9e0388155
   8:     0x7df5c5719bd1 - std[aff040118bb958da]::panicking::begin_panic::<rustc_errors[ccf3a74766137fa5]::ExplicitBug>::{closure#0}
   9:     0x7df5c570dfe6 - std[aff040118bb958da]::sys::backtrace::__rust_end_short_backtrace::<std[aff040118bb958da]::panicking::begin_panic<rustc_errors[ccf3a74766137fa5]::ExplicitBug>::{closure#0}, !>
  10:     0x7df5c570dfcb - std[aff040118bb958da]::panicking::begin_panic::<rustc_errors[ccf3a74766137fa5]::ExplicitBug>
  11:     0x7df5c57235d1 - <rustc_errors[ccf3a74766137fa5]::diagnostic::BugAbort as rustc_errors[ccf3a74766137fa5]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  12:     0x7df5c5cf4846 - rustc_middle[bff44984932adf4f]::util::bug::opt_span_bug_fmt::<rustc_span[2a04d5a35653b919]::span_encoding::Span>::{closure#0}
  13:     0x7df5c5cddd2a - rustc_middle[bff44984932adf4f]::ty::context::tls::with_opt::<rustc_middle[bff44984932adf4f]::util::bug::opt_span_bug_fmt<rustc_span[2a04d5a35653b919]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  14:     0x7df5c5cddb9b - rustc_middle[bff44984932adf4f]::ty::context::tls::with_context_opt::<rustc_middle[bff44984932adf4f]::ty::context::tls::with_opt<rustc_middle[bff44984932adf4f]::util::bug::opt_span_bug_fmt<rustc_span[2a04d5a35653b919]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  15:     0x7df5c40f9e20 - rustc_middle[bff44984932adf4f]::util::bug::bug_fmt
  16:     0x7df5c61a4a35 - rustc_sanitizers[13117c02c2809417]::cfi::typeid::itanium_cxx_abi::encode::encode_ty_name
  17:     0x7df5c61a5f9b - rustc_sanitizers[13117c02c2809417]::cfi::typeid::itanium_cxx_abi::encode::encode_ty
  18:     0x7df5c61a7204 - rustc_sanitizers[13117c02c2809417]::cfi::typeid::itanium_cxx_abi::encode::encode_ty
  19:     0x7df5c61a90df - rustc_sanitizers[13117c02c2809417]::cfi::typeid::itanium_cxx_abi::typeid_for_fnabi
  20:     0x7df5c61aa1e9 - rustc_sanitizers[13117c02c2809417]::cfi::typeid::itanium_cxx_abi::typeid_for_instance
  21:     0x7df5c7b2346f - <rustc_codegen_llvm[c101bf8584bfcdb2]::context::CodegenCx as rustc_codegen_ssa[9aaafa5d25c08f19]::traits::declare::PreDefineCodegenMethods>::predefine_fn
  22:     0x7df5c7b25193 - rustc_codegen_llvm[c101bf8584bfcdb2]::base::compile_codegen_unit::module_codegen
  23:     0x7df5c7ceb750 - <rustc_codegen_llvm[c101bf8584bfcdb2]::LlvmCodegenBackend as rustc_codegen_ssa[9aaafa5d25c08f19]::traits::backend::ExtraBackendMethods>::compile_codegen_unit
  24:     0x7df5c7ce7951 - <rustc_codegen_llvm[c101bf8584bfcdb2]::LlvmCodegenBackend as rustc_codegen_ssa[9aaafa5d25c08f19]::traits::backend::CodegenBackend>::codegen_crate
  25:     0x7df5c7aba9db - <rustc_interface[a6a17d2a4de965ee]::queries::Linker>::codegen_and_build_linker
  26:     0x7df5c7d4e1ef - rustc_interface[a6a17d2a4de965ee]::passes::create_and_enter_global_ctxt::<core[25dd51937c36d244]::option::Option<rustc_interface[a6a17d2a4de965ee]::queries::Linker>, rustc_driver_impl[301a9b8b79b48566]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
  27:     0x7df5c7d41a60 - rustc_interface[a6a17d2a4de965ee]::interface::run_compiler::<(), rustc_driver_impl[301a9b8b79b48566]::run_compiler::{closure#0}>::{closure#1}
  28:     0x7df5c7b7eedc - std[aff040118bb958da]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[a6a17d2a4de965ee]::util::run_in_thread_with_globals<rustc_interface[a6a17d2a4de965ee]::util::run_in_thread_pool_with_globals<rustc_interface[a6a17d2a4de965ee]::interface::run_compiler<(), rustc_driver_impl[301a9b8b79b48566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
  29:     0x7df5c7b7f300 - <<std[aff040118bb958da]::thread::Builder>::spawn_unchecked_<rustc_interface[a6a17d2a4de965ee]::util::run_in_thread_with_globals<rustc_interface[a6a17d2a4de965ee]::util::run_in_thread_pool_with_globals<rustc_interface[a6a17d2a4de965ee]::interface::run_compiler<(), rustc_driver_impl[301a9b8b79b48566]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[25dd51937c36d244]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  30:     0x7df5c7b7fceb - std::sys::pal::unix::thread::Thread::new::thread_start::h4bc285b173c402c8
  31:     0x7df5c1e9e70a - <unknown>
  32:     0x7df5c1f22aac - <unknown>
  33:                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: please make sure that you have updated to the latest nightly

note: please attach the file at `/tmp/im2/rustc-ice-2025-02-23T09_54_57-2988209.txt` to your bug report

note: compiler flags: -Z sanitizer=cfi -C codegen-units=1 -C lto -C link-dead-code=true

query stack during panic:
end of query stack
error: aborting due to 1 previous error; 1 warning emitted

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

A-control-flow-integrityArea: Control Flow Integrity (CFI) security mitigationC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️PG-exploit-mitigationsProject group: Exploit mitigationsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions