From patchwork Tue Jan 30 12:06:37 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arthur Cohen X-Patchwork-Id: 1892834 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=embecosm.com header.i=@embecosm.com header.a=rsa-sha256 header.s=google header.b=eMyP1lHq; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=server2.sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=patchwork.ozlabs.org) Received: from server2.sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4TPPWf714Nz23gc for ; Tue, 30 Jan 2024 23:25:18 +1100 (AEDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id EBA413858036 for ; Tue, 30 Jan 2024 12:25:16 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 48F4D3857C40 for ; Tue, 30 Jan 2024 12:11:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 48F4D3857C40 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 48F4D3857C40 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706616677; cv=none; b=G0o+ydwL+nylUP1quUKMhnvgaObKI9+uBYqU/cUf/4sXUPOY42wJQFEu57WXqT6toRDwEm+f336voD9qGiwolDt9XWgH2hC9y5JE56Gmr4+j/bPsx+73bWVk4BcZ2TqDXtJ1Lr8tekLjq1rGDo/VTIMdHWBk4WLhEY9pl59aSrw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706616677; c=relaxed/simple; bh=dKj9erYfDS78OtSzz6OkyCZHrzuTBDcxAdvAdu9Xg7I=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=qGvfvXjlx7JQyB/rvYDXQTy+UEbLF42+EpoOqcppuQ6EPwsJvsCCZwoGGRO/IOxkBZR0sJWIXPQB/fdaCsFYZ/gWRd2mHz6qtBCrwh8Z2uzQPb5QgcQoFiIHmsFxkXftkYhr8EIDY3ke657vRHkHWhFDZAm9v9aezAb8B5FPnjw= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-33ae51f8111so1919712f8f.2 for ; Tue, 30 Jan 2024 04:11:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; t=1706616665; x=1707221465; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=pLxE6X+xtTCQJHOMy1mn8hdIvKvPXwYlNBK+63B9uVY=; b=eMyP1lHq/Xd7ysdVS1eiPwhSy63jDfMMIebG1fukXMF/pfb52p0bF6nW9qzB5PYGwz pc/DttUXnC1efQubPaWq2R+gFopzuUVGtrJEhYy1a94bm/OtyD5n9vgJiWudw7Xw3+Em ZE1vAFdHSm5uxWvKT07VPICoAB3Ts37bU6ddhw2eeCtRiPGbRhZxQGcZRjpgSjmtmZOL ynbSLra9eGgCb1IiKexpLZQPzM0hkpt/3GoXi0H+erhCtIPC0lF1BYdzZwkuEzFpIQ4A +fD3HEjEaJHpWbwA9AyVS9szBjWCqKL7MlK2r27U0MqW6Q193xVyMJ9MnYLiZp6WZio8 7IjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706616665; x=1707221465; h=content-transfer-encoding:mime-version:reply-to: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=pLxE6X+xtTCQJHOMy1mn8hdIvKvPXwYlNBK+63B9uVY=; b=Mj8deKRsJuysqlFITkso/XY6IdOQtIaSrVXHxWjIKyorevgcTud8zqyc89u5rpv5lp Xr+UUoDQwkoO5jx0lFhTG68hZjlf3qoF8ssVvHbsrCj+L2gv7/3JxDp6SMtuVQCZ8ZDv 9RollnAGyDV6HwB1Ja033/aBv1+YBf6dVPaFRRGrDFg7Jt8DuwF+LwSk8/9xihYmCgvi 2MCAlgpY+fETiKtbmGdrMHiJP/lMz3poaXmQr8raVwVmpOqkbW6t2IWq2iC0Y94GS6Vw WnH2XMN8vnShYr4+jvuDzSuivgk1bgvV6MwbhGM8TfC0F6v9pIQze/vj2WsIEtm/WP/v mV/g== X-Gm-Message-State: AOJu0YwnO6MG5yM3m2vxmLuWVBNzYSecFkyXVCJpJIDE9VsJcoM6zqEg Q7VhpcfhqKk8oAPG8EXpck1jbSnwZmt2ujcJEV8LyW8o4RXAPx1eutoTVDoR44SQRVkSZZkzOtJ EBA== X-Google-Smtp-Source: AGHT+IFYcRvQb/6+pWkctK0oNaHnF4ukhA6u7D3fUyGhZ88g3gDMIx9fCUtVYI7TwK760OC49Qx8nA== X-Received: by 2002:a05:6000:184b:b0:33a:fcf3:e502 with SMTP id c11-20020a056000184b00b0033afcf3e502mr949399wri.35.1706616665364; Tue, 30 Jan 2024 04:11:05 -0800 (PST) Received: from platypus.localdomain ([62.23.166.218]) by smtp.gmail.com with ESMTPSA id f9-20020a056000036900b00339307d9d31sm10569894wrf.112.2024.01.30.04.11.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 30 Jan 2024 04:11:04 -0800 (PST) From: arthur.cohen@embecosm.com To: gcc-patches@gcc.gnu.org Cc: gcc-rust@gcc.gnu.org, Pierre-Emmanuel Patry Subject: [COMMITTED 021/101] gccrs: Emit an error on variadic non extern functions Date: Tue, 30 Jan 2024 13:06:37 +0100 Message-ID: <20240130121026.807464-24-arthur.cohen@embecosm.com> X-Mailer: git-send-email 2.42.1 In-Reply-To: <20240130121026.807464-2-arthur.cohen@embecosm.com> References: <20240130121026.807464-2-arthur.cohen@embecosm.com> MIME-Version: 1.0 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, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: arthur.cohen@embecosm.com Errors-To: gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org From: Pierre-Emmanuel Patry Variadic regular functions were recently added in the parser as they should be rejected in the ast validation pass. This commit add the ast validation pass rejecting this kind of variadic arguments. gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add ast validation pass to reject variadic arguments on regular functions. Signed-off-by: Pierre-Emmanuel Patry --- gcc/rust/checks/errors/rust-ast-validation.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gcc/rust/checks/errors/rust-ast-validation.cc b/gcc/rust/checks/errors/rust-ast-validation.cc index 673290959f4..4142cc6317e 100644 --- a/gcc/rust/checks/errors/rust-ast-validation.cc +++ b/gcc/rust/checks/errors/rust-ast-validation.cc @@ -93,6 +93,11 @@ ASTValidation::visit (AST::Function &function) function.get_self_param ()->get_locus (), "% parameter is only allowed in associated functions"); + if (function.is_variadic ()) + rust_error_at ( + function.get_function_params ().back ()->get_locus (), + "only foreign or % functions may be C-variadic"); + AST::ContextualASTVisitor::visit (function); }