Add a span to CompilerBuiltinsCannotCall
Currently, this error emit a diagnostic with no context like: error: `compiler_builtins` cannot call functions through upstream monomorphizations; encountered invalid call from `<math::libm::support::hex_float::Hexf<i32> as core::fmt::LowerHex>::fmt` to `core::fmt::num::<impl core::fmt::LowerHex for i32>::fmt` With this change, it at least usually points to the problematic function: error: `compiler_builtins` cannot call functions through upstream monomorphizations; encountered invalid call from `<math::libm::support::hex_float::Hexf<i32> as core::fmt::LowerHex>::fmt` to `core::fmt::num::<impl core::fmt::LowerHex for i32>::fmt` --> src/../libm/src/math/support/hex_float.rs:270:5 | 270 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
This commit is contained in:
parent
f8a913b138
commit
7a2db88a56
3 changed files with 16 additions and 6 deletions
|
@ -402,9 +402,13 @@ pub(crate) fn codegen_terminator_call<'tcx>(
|
|||
|
||||
if is_call_from_compiler_builtins_to_upstream_monomorphization(fx.tcx, instance) {
|
||||
if target.is_some() {
|
||||
let caller = with_no_trimmed_paths!(fx.tcx.def_path_str(fx.instance.def_id()));
|
||||
let callee = with_no_trimmed_paths!(fx.tcx.def_path_str(def_id));
|
||||
fx.tcx.dcx().emit_err(CompilerBuiltinsCannotCall { caller, callee });
|
||||
let caller_def = fx.instance.def_id();
|
||||
let e = CompilerBuiltinsCannotCall {
|
||||
span: fx.tcx.def_span(caller_def),
|
||||
caller: with_no_trimmed_paths!(fx.tcx.def_path_str(caller_def)),
|
||||
callee: with_no_trimmed_paths!(fx.tcx.def_path_str(def_id)),
|
||||
};
|
||||
fx.tcx.dcx().emit_err(e);
|
||||
} else {
|
||||
fx.bcx.ins().trap(TrapCode::user(2).unwrap());
|
||||
return;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue