From 39ee14d25346aa82e75e9818e92e3c43571c6757 Mon Sep 17 00:00:00 2001 From: bjorn3 <17426603+bjorn3@users.noreply.github.com> Date: Mon, 25 Jul 2022 11:18:34 +0000 Subject: [PATCH] Error when trying to define variadic functions They aren't yet supported by Cranelift --- src/abi/mod.rs | 9 +++++++++ src/intrinsics/mod.rs | 14 ++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/src/abi/mod.rs b/src/abi/mod.rs index 6f12d9ca531..815450f689e 100644 --- a/src/abi/mod.rs +++ b/src/abi/mod.rs @@ -193,6 +193,15 @@ pub(crate) fn codegen_fn_prelude<'tcx>(fx: &mut FunctionCx<'_, '_, 'tcx>, start_ } let fn_abi = fx.fn_abi.take().unwrap(); + + // FIXME implement variadics in cranelift + if fn_abi.c_variadic { + fx.tcx.sess.span_fatal( + fx.mir.span, + "Defining variadic functions is not yet supported by Cranelift", + ); + } + let mut arg_abis_iter = fn_abi.args.iter(); let func_params = fx diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs index 4b2207f3758..eb58cfbb356 100644 --- a/src/intrinsics/mod.rs +++ b/src/intrinsics/mod.rs @@ -1135,6 +1135,20 @@ fn codegen_regular_intrinsic_call<'tcx>( // FIXME implement black_box semantics ret.write_cvalue(fx, a); }; + + // FIXME implement variadics in cranelift + va_copy, (o _dest, o _src) { + fx.tcx.sess.span_fatal( + source_info.span, + "Defining variadic functions is not yet supported by Cranelift", + ); + }; + va_arg | va_end, (o _valist) { + fx.tcx.sess.span_fatal( + source_info.span, + "Defining variadic functions is not yet supported by Cranelift", + ); + }; } let ret_block = fx.get_block(destination.unwrap());