From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by sourceware.org (Postfix) with ESMTPS id 66E80385AC35 for ; Fri, 21 Mar 2025 12:35:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 66E80385AC35 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=embecosm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=embecosm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 66E80385AC35 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560558; cv=none; b=qoRPnoYo6MMcDtlKBYCzm5xNane3tj69sHsOXC5BTW4MRJsuoFwKenyqrR5zmT/6vmsu45VirVqGe+ZCL24trjjl2i/kS2macYbNC6jikyS9+gEPslGCAHx8UXwUWlPXrWTJR+hVB7ErWsI3DFLrmjGRgzu2JWo6G94hZZxpGpI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1742560558; c=relaxed/simple; bh=YbqlXEikCghlDwwBY/A08NIaKTQArX31FX2nS01NFDE=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=gKRMgNig+SeM2nVfE0GVO31qZqT/XLOYpn0IygaLCFg+E1HOnnCTObzbae6+OVHhYHqY+jCSpXA9lW7Gn1UjTqBzMky6MQHuF6Q/DJBiqZPh4fSJccs9uV9ICnf++nGf8OwecKnnm0vQAlmVu8w07avo6WgOm0i6TuHV5jCXONo= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43cf05f0c3eso12385665e9.0 for ; Fri, 21 Mar 2025 05:35:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1742560447; x=1743165247; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5PHlyERV93KIycvWoekECPyXyrISp+uK6jpWm5fJkZk=; b=EhsNAoxqcaHpE9gKxR7liXYkRq/6vV5O1UtVBDP5JJ8k8yrmYkytcxFhzhqQnKGHpa 6Ea/0DUebs9rBFeJ2PMgYVEoNL54ybMgLwp8ozHF719n0HBOYbpbUDx5pjIvcRpgn/Fh fbH5ewwa1im1LWh/jx/GLQLNpALcKDK0vp7L+vxurKWl+A2xLklkHStEk5VTKlVpequD lP060yKIV8X4oaUE3gOMv+9jrB6O1buACNbdKvMke8JgazkKsgnrlWbAqEQoPv5WnRZC l79luEHzRR/TfgRWEWNBtmJh6SegElIzf7QTz8vW96qiCw2OAWqdp7eeNJaAAEHDI4W2 JZeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742560447; x=1743165247; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5PHlyERV93KIycvWoekECPyXyrISp+uK6jpWm5fJkZk=; b=LTNa5vrd96A/uSOWxx4opYX4shCDtwt1czE5RGnBjArcR0yaeItqZ1vELZz8Z/p9lM O5NQEgD2TWdBBYp7tw0ewTH/wrqqgtmfkJBtyJAC5eoJREyx0YvTJFgCVRZl5G3QCyUV qodMRL9PL6kRWCdGZFPAjb8zlQ6wgOdU3ho8p11umoidF4wYbTmho3UPIFCs2X7sT9ir fPo9WH5+EU1WBtKEzPKhLsuLEV8TH88fvbJ3ihChWWTl9sGyXomp5w0H2A6Xlzzpbyx+ dJaF09+7nrx5APSAKeEiiq6hxJm4VrNteTSF/Yki32uT5ByqZ6pgvO3/hqM5wSsOdxA0 Bivw== X-Gm-Message-State: AOJu0YyL6CxB9RaHpa/8niW63axY4vxNu3/46kl1D6/YR5B+gyD3PkNw aXMBoOE+CRr3qXBRNty7y4T4A+OgShtyB7XFUcih43opuCIRZkRs8eUBl/VzmH4S+vqi/tEk/hj dEw== X-Gm-Gg: ASbGnct++b/yo+Vot34eK96wZoH1DoGxM+KvPv5MiAp4ymkQGljlKnnx3nZFAYNilyF xJ4me7FZaDojG5f6HOC3jk6yNe0nblav6PlXcYrCiPf1APH600m6kh6fuX6oU13woRGzVD0eZKb fCj2zt/pIkXbDSTAG5wmqEIWjaJO1paHZqS5e9cHagkkNiPw0kYntE1GUlDcGdNNS832IKaR3Sp EeH17lqfWjs6VOiVnFVF4cf6ohQOOYUP14imQiffemZHZ1FiJFCI1HPywiEpDNmohHe51Qfba4L x31NjYjOqfkej1uUJW8U2b3IQyechlnz712viVMdODY1CJ+VlttTwcrrYdIzJjIOlZI= X-Google-Smtp-Source: AGHT+IGqNHTnMjj7dWrqgOqfo5uU8d53lXtMg5GrGXIMfcnvb9jjOEVP2zFjIk54I24++jJySvmDag== X-Received: by 2002:a5d:47c8:0:b0:391:2e58:f085 with SMTP id ffacd0b85a97d-3997f93d39dmr2826517f8f.54.1742560447285; Fri, 21 Mar 2025 05:34:07 -0700 (PDT) Received: from platypus.lan ([2a04:cec0:1901:7a99:be55:efb3:1ec6:8ea7]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43d440ed4d9sm76950305e9.33.2025.03.21.05.34.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 05:34:07 -0700 (PDT) From: arthur.cohen@embecosm.com To: gcc-patches@gcc.gnu.org Cc: gcc-rust@gcc.gnu.org, liushuyu Subject: [COMMITTED 110/146] gccrs: add two more tests to test try-catch (unwind) code generation Date: Fri, 21 Mar 2025 13:06:51 +0100 Message-ID: <20250321123226.184882-111-arthur.cohen@embecosm.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250321123226.184882-1-arthur.cohen@embecosm.com> References: <20250321123226.184882-1-arthur.cohen@embecosm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,PROLO_LEO1,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: From: liushuyu gcc/testsuite/ChangeLog: * rust/compile/try-catch-unwind-old.rs: add a test to test the older try intrinsics from plain old Rust to v1.78.0 * rust/compile/try-catch-unwind-new.rs: add a test to test the newer catch_unwind instrinsics since Rust v1.78.0 --- .../rust/compile/try-catch-unwind-new.rs | 20 ++++++++++++++++++ .../rust/compile/try-catch-unwind-old.rs | 21 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 gcc/testsuite/rust/compile/try-catch-unwind-new.rs create mode 100644 gcc/testsuite/rust/compile/try-catch-unwind-old.rs diff --git a/gcc/testsuite/rust/compile/try-catch-unwind-new.rs b/gcc/testsuite/rust/compile/try-catch-unwind-new.rs new file mode 100644 index 00000000000..b176f7a100b --- /dev/null +++ b/gcc/testsuite/rust/compile/try-catch-unwind-new.rs @@ -0,0 +1,20 @@ +// { dg-options "-O2 -w -fdump-tree-optimized" } +#![feature(intrinsics)] + +extern "rust-intrinsic" { + // { dg-final { scan-tree-dump-times "__builtin_eh_pointer" 1 "optimized" } } + fn catch_unwind(try_fn: fn(_: *mut u8), data: *mut u8, catch_fn: fn(_: *mut u8, _: *mut u8)); +} + +extern "C" { + fn try_fn(data: *mut u8); + fn catch_fn(data: *mut u8, ex: *mut u8); +} + +pub fn not_main(d: &mut u8) { + unsafe { + // { dg-final { scan-tree-dump-times "try_fn" 1 "optimized" } } + catch_unwind(try_fn, d, catch_fn); + // { dg-final { scan-tree-dump-times "catch_fn" 1 "optimized" } } + } +} diff --git a/gcc/testsuite/rust/compile/try-catch-unwind-old.rs b/gcc/testsuite/rust/compile/try-catch-unwind-old.rs new file mode 100644 index 00000000000..e97d52cd64e --- /dev/null +++ b/gcc/testsuite/rust/compile/try-catch-unwind-old.rs @@ -0,0 +1,21 @@ +// { dg-options "-O2 -w -fdump-tree-optimized" } +#![feature(intrinsics)] + +extern "rust-intrinsic" { + // { dg-final { scan-tree-dump-times "__builtin_eh_pointer" 1 "optimized" } } + fn r#try(try_fn: fn(_: *mut u8), data: *mut u8, catch_fn: fn(_: *mut u8, _: *mut u8)) -> i32; +} + +extern "C" { + fn try_fn(data: *mut u8); + fn catch_fn(data: *mut u8, ex: *mut u8); +} + +pub fn not_main(d: &mut u8) -> i32 { + unsafe { + // { dg-final { scan-tree-dump-times "try_fn" 1 "optimized" } } + let _: i32 = r#try(try_fn, d, catch_fn); + // { dg-final { scan-tree-dump-times "catch_fn" 1 "optimized" } } + } + 42 +} -- 2.45.2