From 8bd0b7a7a23e63b03754f556aa0b7dcde826170d Mon Sep 17 00:00:00 2001 From: Tim Neumann Date: Mon, 11 May 2026 17:26:33 +0200 Subject: [PATCH] LLVM 23: Specify `returnaddress` intrinsic return type --- compiler/rustc_codegen_llvm/src/intrinsic.rs | 9 ++++++++- tests/codegen-llvm/intrinsics/return_address.rs | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_codegen_llvm/src/intrinsic.rs b/compiler/rustc_codegen_llvm/src/intrinsic.rs index 312ff597c110..9b7744cc81c1 100644 --- a/compiler/rustc_codegen_llvm/src/intrinsic.rs +++ b/compiler/rustc_codegen_llvm/src/intrinsic.rs @@ -860,7 +860,14 @@ fn codegen_intrinsic_call( _ => { let ty = self.type_ix(32); let val = self.const_int(ty, 0); - self.call_intrinsic("llvm.returnaddress", &[], &[val]) + + let type_params: &[&'ll Type] = if llvm_version < (23, 0, 0) { + &[] + } else { + &[self.type_ptr()] + }; + + self.call_intrinsic("llvm.returnaddress", type_params, &[val]) } } } diff --git a/tests/codegen-llvm/intrinsics/return_address.rs b/tests/codegen-llvm/intrinsics/return_address.rs index 5aa731d6383f..6cd37595d653 100644 --- a/tests/codegen-llvm/intrinsics/return_address.rs +++ b/tests/codegen-llvm/intrinsics/return_address.rs @@ -7,6 +7,6 @@ #[no_mangle] #[inline(never)] pub fn call_return_address_intrinsic() -> *const () { - // CHECK: call ptr @llvm.returnaddress(i32 0) + // CHECK: call ptr @llvm.returnaddress{{(.p0)?}}(i32 0) core::intrinsics::return_address() }