diff --git a/compiler/rustc_codegen_llvm/src/callee.rs b/compiler/rustc_codegen_llvm/src/callee.rs index b86b32b92df04..9a609ce8d6967 100644 --- a/compiler/rustc_codegen_llvm/src/callee.rs +++ b/compiler/rustc_codegen_llvm/src/callee.rs @@ -31,7 +31,9 @@ pub(crate) fn get_fn<'ll, 'tcx>(cx: &CodegenCx<'ll, 'tcx>, instance: Instance<'t let fn_abi = cx.fn_abi_of_instance(instance, ty::List::empty()); - let llfn = if let Some(llfn) = cx.get_declared_value(sym) { + let llfn = if let Some(llfn) = cx.get_declared_value(sym) + && (!cx.tcx.is_codegened_item(instance.def_id()) || !instance.def_id().is_local()) + { llfn } else { let instance_def_id = instance.def_id();