From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7905) id 3008D385829A; Tue, 16 Jan 2024 17:51:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3008D385829A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1705427509; bh=GahTFe+lNIQtQLMGVpCxkynICj9oKcHTJNo6QXHCJAY=; h=From:To:Subject:Date:From; b=TcSgdLCvwd71qiYC4MdxE/dzHGC5qlinkOiFjRnLIlCdbJVZ45dQe2MDmtH4BUdaR JNVfvdZsl1lvOmRHET/XwDGyamEj6suo4rhlsa8tA6JLo3qI5NmTNo0WWwzNY9TO/z 3uJV+0VlrmUBuYR0C0omwIy5BMzsNvCvR6MMksb8= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Arthur Cohen To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-7664] gccrs: expand: Allow empty derive attribute X-Act-Checkin: gcc X-Git-Author: Pierre-Emmanuel Patry X-Git-Refname: refs/heads/trunk X-Git-Oldrev: 6925358a440bd9dfb33dc79d8f345530b4cb94cc X-Git-Newrev: da450d345c948d9be1fca29d01fa1153c2ddf3bd Message-Id: <20240116175149.3008D385829A@sourceware.org> Date: Tue, 16 Jan 2024 17:51:49 +0000 (GMT) List-Id: https://gcc.gnu.org/g:da450d345c948d9be1fca29d01fa1153c2ddf3bd commit r14-7664-gda450d345c948d9be1fca29d01fa1153c2ddf3bd Author: Pierre-Emmanuel Patry Date: Mon Jun 5 13:17:22 2023 +0200 gccrs: expand: Allow empty derive attribute Changes derive macro expansion to accept empty derive attributes. This commit also add a test to prevent future regressions. gcc/rust/ChangeLog: * expand/rust-expand-visitor.cc (get_traits_to_derive): Change assertion to allow empty derive directives. gcc/testsuite/ChangeLog: * rust/compile/derive_empty.rs: New test. Signed-off-by: Pierre-Emmanuel Patry Diff: --- gcc/rust/expand/rust-expand-visitor.cc | 2 +- gcc/testsuite/rust/compile/derive_empty.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc index 927d9225049..c7a5f573d7e 100644 --- a/gcc/rust/expand/rust-expand-visitor.cc +++ b/gcc/rust/expand/rust-expand-visitor.cc @@ -72,7 +72,7 @@ get_traits_to_derive (AST::Attribute &attr) = static_cast (input).get_token_trees (); // erase the delimiters - rust_assert (tokens.size () >= 3); + rust_assert (tokens.size () >= 2); tokens.erase (tokens.begin ()); tokens.pop_back (); diff --git a/gcc/testsuite/rust/compile/derive_empty.rs b/gcc/testsuite/rust/compile/derive_empty.rs new file mode 100644 index 00000000000..21c67f01d6c --- /dev/null +++ b/gcc/testsuite/rust/compile/derive_empty.rs @@ -0,0 +1,6 @@ +#[derive()] +struct UnderivedStruct; + +fn main() { + let _ = UnderivedStruct; +}