diff options
| author | bors <bors@rust-lang.org> | 2020-11-28 15:17:13 +0000 | 
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-11-28 15:17:13 +0000 | 
| commit | e37f25aa3f356546ab851e394d5598fc575eabda (patch) | |
| tree | 74c4ea90fdc836713c72cb393d1b8f442dd0e4c4 /compiler/rustc_codegen_cranelift/src/trap.rs | |
| parent | 4ae328bef47dffcbf363e5ae873f419c06a5511d (diff) | |
| parent | 208d680f771601cf5efb6a7bfb49cb2b9e655d3e (diff) | |
| download | rust-e37f25aa3f356546ab851e394d5598fc575eabda.tar.gz rust-e37f25aa3f356546ab851e394d5598fc575eabda.zip | |
Auto merge of #79507 - jonas-schievink:rollup-e5yeayh, r=jonas-schievink
Rollup of 10 pull requests Successful merges: - #78086 (Improve doc for 'as _') - #78853 (rustc_parse: fix ConstBlock expr span) - #79234 (Resolve typedefs in HashMap gdb/lldb pretty-printers) - #79344 (Convert UNC path to local path to satisfy install script on Windows) - #79383 (Fix bold code formatting in keyword docs) - #79460 (Remove intermediate vectors from `add_bounds`) - #79474 (Change comments on types to doc-comments) - #79476 (Sync rustc_codegen_cranelift) - #79478 (Expand docs on Peekable::peek_mut) - #79486 (Slightly improve code samples in E0591) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'compiler/rustc_codegen_cranelift/src/trap.rs')
| -rw-r--r-- | compiler/rustc_codegen_cranelift/src/trap.rs | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/compiler/rustc_codegen_cranelift/src/trap.rs b/compiler/rustc_codegen_cranelift/src/trap.rs index 690d96764a8..67495c74148 100644 --- a/compiler/rustc_codegen_cranelift/src/trap.rs +++ b/compiler/rustc_codegen_cranelift/src/trap.rs @@ -67,3 +67,15 @@ pub(crate) fn trap_unimplemented(fx: &mut FunctionCx<'_, '_, impl Module>, msg: let true_ = fx.bcx.ins().iconst(types::I32, 1); fx.bcx.ins().trapnz(true_, TrapCode::User(!0)); } + +/// Like `trap_unimplemented` but returns a fake value of the specified type. +/// +/// Trap code: user65535 +pub(crate) fn trap_unimplemented_ret_value<'tcx>( + fx: &mut FunctionCx<'_, 'tcx, impl Module>, + dest_layout: TyAndLayout<'tcx>, + msg: impl AsRef<str>, +) -> CValue<'tcx> { + trap_unimplemented(fx, msg); + CValue::by_ref(Pointer::const_addr(fx, 0), dest_layout) +} | 
