-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.F-explicit_tail_calls`#![feature(explicit_tail_calls)]``#![feature(explicit_tail_calls)]`I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.requires-debug-assertionsThis issue requires a build of rustc or tooling with debug-assertions in some wayThis issue requires a build of rustc or tooling with debug-assertions in some way
Description
I tried this code:
//@ check-pass
// so this should compile.
#![expect(incomplete_features)]
#![feature(explicit_tail_calls)]
fn a(x: u32) -> u32 {
become b(x);
}
#[track_caller]
fn b(x: u32) -> u32 { x + 42 }
fn main() {
assert_eq!(a(128), 54);
}
Meta
rustc --version --verbose
:
adcb3d3b4cd3b7c4cde642f3ed537037f293738e
Backtrace
cannot guarantee tail call due to mismatched parameter counts
%2 = musttail call i32 @_ZN64FF3C930F77C71A201CC3F60E04A19F24F40C416034B4A3B4054609ACB4023FA01b17h0731788d0a0410ebE(i32 %0, ptr align 8 @2)
rustc-LLVM ERROR: Broken module found, compilation aborted!
Metadata
Metadata
Assignees
Labels
A-LLVMArea: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues.C-bugCategory: This is a bug.Category: This is a bug.F-explicit_tail_calls`#![feature(explicit_tail_calls)]``#![feature(explicit_tail_calls)]`I-crashIssue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.Issue: The compiler crashes (SIGSEGV, SIGABRT, etc). Use I-ICE instead when the compiler panics.requires-debug-assertionsThis issue requires a build of rustc or tooling with debug-assertions in some wayThis issue requires a build of rustc or tooling with debug-assertions in some way