From: Pierre-Emmanuel Patry Date: Mon, 5 Jun 2023 11:17:22 +0000 (+0200) Subject: gccrs: expand: Allow empty derive attribute X-Git-Tag: basepoints/gcc-15~2475 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=da450d345c948d9be1fca29d01fa1153c2ddf3bd;p=thirdparty%2Fgcc.git 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 --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc index 927d9225049e..c7a5f573d7ed 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 000000000000..21c67f01d6cd --- /dev/null +++ b/gcc/testsuite/rust/compile/derive_empty.rs @@ -0,0 +1,6 @@ +#[derive()] +struct UnderivedStruct; + +fn main() { + let _ = UnderivedStruct; +}