From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1643) id 820A63857803; Tue, 25 Oct 2022 19:14:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 820A63857803 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1666725246; bh=4Iu2fSnGFNXIq/4/S2l/kqbhyLLsIQmYfp2telppV/I=; h=From:To:Subject:Date:From; b=I86eaf1iURuwO+4pUr+sVVQrUVCaswTGjkH1haJ4G5f7oSJYbiSZAk5OuFbTI75gT WrqS3IruDS2+GTNxfQT1n5+WCNsKWdsUVmLvB1cCaB8TbqliXRYBm3ZAw2P874fU5H bbuc0T3zxSIFwpVPc9rCro6FhvxHHua3cooBBPC0= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Thomas Schwinge To: gcc-cvs@gcc.gnu.org Subject: [gcc/devel/rust/master] intrinsics: Add `sorry_handler` intrinsic handler X-Act-Checkin: gcc X-Git-Author: Arthur Cohen X-Git-Refname: refs/heads/devel/rust/master X-Git-Oldrev: 490aa25d5564313c1957bf28533fe902a0aaa1f2 X-Git-Newrev: 83e5265d6af48e1572cbe019b4b7f7a5603086a9 Message-Id: <20221025191406.820A63857803@sourceware.org> Date: Tue, 25 Oct 2022 19:14:06 +0000 (GMT) List-Id: https://gcc.gnu.org/g:83e5265d6af48e1572cbe019b4b7f7a5603086a9 commit 83e5265d6af48e1572cbe019b4b7f7a5603086a9 Author: Arthur Cohen Date: Tue Oct 25 10:48:43 2022 +0200 intrinsics: Add `sorry_handler` intrinsic handler This allows us to define intrinsics without implementing their body. This will be useful for atomic intrinsics for example, as there are a lot of them and we should work on implementing them one by one properly and slowly Diff: --- gcc/rust/backend/rust-compile-intrinsic.cc | 10 ++++++++++ gcc/testsuite/rust/compile/torture/intrinsics-3.rs | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/gcc/rust/backend/rust-compile-intrinsic.cc b/gcc/rust/backend/rust-compile-intrinsic.cc index a418b863210..2a2091ccc25 100644 --- a/gcc/rust/backend/rust-compile-intrinsic.cc +++ b/gcc/rust/backend/rust-compile-intrinsic.cc @@ -93,6 +93,15 @@ prefetch_write_data (Context *ctx, TyTy::FnType *fntype) return prefetch_data_handler (ctx, fntype, Prefetch::Write); } +static inline tree +sorry_handler (Context *ctx, TyTy::FnType *fntype) +{ + rust_sorry_at (fntype->get_locus (), "intrinsic %qs is not yet implemented", + fntype->get_identifier ().c_str ()); + + return error_mark_node; +} + static const std::map> generic_intrinsics = { @@ -107,6 +116,7 @@ static const std::map