aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2023-06-05 13:17:22 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2023-06-08 14:32:35 +0200
commitb94c7a9748f51310b010a95009716c739be90484 (patch)
treeb750f73dcf1ffebe7c8f1d5e71c7bed64015d00b
parent588b130c7cc9ebdf2bcbf23856f11ebf39625375 (diff)
downloadgcc-b94c7a9748f51310b010a95009716c739be90484.zip
gcc-b94c7a9748f51310b010a95009716c739be90484.tar.gz
gcc-b94c7a9748f51310b010a95009716c739be90484.tar.bz2
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 <pierre-emmanuel.patry@embecosm.com>
-rw-r--r--gcc/rust/expand/rust-expand-visitor.cc2
-rw-r--r--gcc/testsuite/rust/compile/derive_empty.rs6
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/rust/expand/rust-expand-visitor.cc b/gcc/rust/expand/rust-expand-visitor.cc
index 927d922..c7a5f57 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<AST::DelimTokenTree &> (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 0000000..21c67f0
--- /dev/null
+++ b/gcc/testsuite/rust/compile/derive_empty.rs
@@ -0,0 +1,6 @@
+#[derive()]
+struct UnderivedStruct;
+
+fn main() {
+ let _ = UnderivedStruct;
+}