diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2023-06-05 13:17:22 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-06-08 14:32:35 +0200 |
commit | b94c7a9748f51310b010a95009716c739be90484 (patch) | |
tree | b750f73dcf1ffebe7c8f1d5e71c7bed64015d00b | |
parent | 588b130c7cc9ebdf2bcbf23856f11ebf39625375 (diff) | |
download | gcc-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.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/derive_empty.rs | 6 |
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; +} |