Skip to content

Commit 6424f0a

Browse files
committed
Replace trap_unimplemented calls with codegen_panic_nounwind
This will show a backtrace. Also added a reference to #171 in the unimplemented intrinsic error message.
1 parent b69a478 commit 6424f0a

File tree

6 files changed

+28
-44
lines changed

6 files changed

+28
-44
lines changed

src/intrinsics/llvm.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,12 @@ pub(crate) fn codegen_llvm_intrinsic_call<'tcx>(
6666
fx.tcx
6767
.dcx()
6868
.warn(format!("unsupported llvm intrinsic {}; replacing with trap", intrinsic));
69-
crate::trap::trap_unimplemented(fx, intrinsic);
69+
let msg = format!(
70+
"{intrinsic} is not yet supported.\n\
71+
See https://github.com/rust-lang/rustc_codegen_cranelift/issues/171\n\
72+
Please open an issue at https://github.com/rust-lang/rustc_codegen_cranelift/issues"
73+
);
74+
crate::base::codegen_panic_nounwind(fx, &msg, None);
7075
return;
7176
}
7277
}

src/intrinsics/llvm_aarch64.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -507,7 +507,12 @@ pub(crate) fn codegen_aarch64_llvm_intrinsic_call<'tcx>(
507507
"unsupported AArch64 llvm intrinsic {}; replacing with trap",
508508
intrinsic
509509
));
510-
crate::trap::trap_unimplemented(fx, intrinsic);
510+
let msg = format!(
511+
"{intrinsic} is not yet supported.\n\
512+
See https://github.com/rust-lang/rustc_codegen_cranelift/issues/171\n\
513+
Please open an issue at https://github.com/rust-lang/rustc_codegen_cranelift/issues"
514+
);
515+
crate::base::codegen_panic_nounwind(fx, &msg, None);
511516
return;
512517
}
513518
}

src/intrinsics/llvm_x86.rs

+6-1
Original file line numberDiff line numberDiff line change
@@ -1316,7 +1316,12 @@ pub(crate) fn codegen_x86_llvm_intrinsic_call<'tcx>(
13161316
fx.tcx
13171317
.dcx()
13181318
.warn(format!("unsupported x86 llvm intrinsic {}; replacing with trap", intrinsic));
1319-
crate::trap::trap_unimplemented(fx, intrinsic);
1319+
let msg = format!(
1320+
"{intrinsic} is not yet supported.\n\
1321+
See https://github.com/rust-lang/rustc_codegen_cranelift/issues/171\n\
1322+
Please open an issue at https://github.com/rust-lang/rustc_codegen_cranelift/issues"
1323+
);
1324+
crate::base::codegen_panic_nounwind(fx, &msg, None);
13201325
return;
13211326
}
13221327
}

src/intrinsics/mod.rs

+10-2
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,11 @@ fn codegen_regular_intrinsic_call<'tcx>(
801801
// FIXME implement 128bit atomics
802802
if fx.tcx.is_compiler_builtins(LOCAL_CRATE) {
803803
// special case for compiler-builtins to avoid having to patch it
804-
crate::trap::trap_unimplemented(fx, "128bit atomics not yet supported");
804+
crate::base::codegen_panic_nounwind(
805+
fx,
806+
"128bit atomics not yet supported",
807+
None,
808+
);
805809
return Ok(());
806810
} else {
807811
fx.tcx
@@ -832,7 +836,11 @@ fn codegen_regular_intrinsic_call<'tcx>(
832836
// FIXME implement 128bit atomics
833837
if fx.tcx.is_compiler_builtins(LOCAL_CRATE) {
834838
// special case for compiler-builtins to avoid having to patch it
835-
crate::trap::trap_unimplemented(fx, "128bit atomics not yet supported");
839+
crate::base::codegen_panic_nounwind(
840+
fx,
841+
"128bit atomics not yet supported",
842+
None,
843+
);
836844
return Ok(());
837845
} else {
838846
fx.tcx

src/lib.rs

-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ mod optimize;
7676
mod pointer;
7777
mod pretty_clif;
7878
mod toolchain;
79-
mod trap;
8079
mod unsize;
8180
mod unwind_module;
8281
mod value_and_place;

src/trap.rs

-38
This file was deleted.

0 commit comments

Comments
 (0)