https://gcc.gnu.org/g:90ce6ea184f1b94e1bd1c88d4f99a9e055de3d97
commit r15-2585-g90ce6ea184f1b94e1bd1c88d4f99a9e055de3d97 Author: Owen Avery <powerboat9.ga...@gmail.com> Date: Tue Mar 26 19:28:53 2024 -0400 gccrs: Recognize unstable as a builtin attribute gcc/rust/ChangeLog: * util/rust-attribute-values.h (Attributes::UNSTABLE): New. * util/rust-attributes.cc (__definitions): Add Attributes::UNSTABLE. gcc/testsuite/ChangeLog: * rust/compile/unstable-fn.rs: New test. Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com> Diff: --- gcc/rust/util/rust-attribute-values.h | 1 + gcc/rust/util/rust-attributes.cc | 3 ++- gcc/testsuite/rust/compile/unstable-fn.rs | 2 ++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/gcc/rust/util/rust-attribute-values.h b/gcc/rust/util/rust-attribute-values.h index 04aef99be68f..a8551c07dba6 100644 --- a/gcc/rust/util/rust-attribute-values.h +++ b/gcc/rust/util/rust-attribute-values.h @@ -52,6 +52,7 @@ public: static constexpr auto &RUSTC_INHERIT_OVERFLOW_CHECKS = "rustc_inherit_overflow_checks"; static constexpr auto &STABLE = "stable"; + static constexpr auto &UNSTABLE = "unstable"; }; } // namespace Values } // namespace Rust diff --git a/gcc/rust/util/rust-attributes.cc b/gcc/rust/util/rust-attributes.cc index e10918b2f8d0..84d1781d0b36 100644 --- a/gcc/rust/util/rust-attributes.cc +++ b/gcc/rust/util/rust-attributes.cc @@ -60,7 +60,8 @@ static const BuiltinAttrDefinition __definitions[] // #![feature(rustc_attrs)] {Attrs::RUSTC_DEPRECATED, STATIC_ANALYSIS}, {Attrs::RUSTC_INHERIT_OVERFLOW_CHECKS, CODE_GENERATION}, - {Attrs::STABLE, STATIC_ANALYSIS}}; + {Attrs::STABLE, STATIC_ANALYSIS}, + {Attrs::UNSTABLE, STATIC_ANALYSIS}}; BuiltinAttributeMappings * BuiltinAttributeMappings::get () diff --git a/gcc/testsuite/rust/compile/unstable-fn.rs b/gcc/testsuite/rust/compile/unstable-fn.rs new file mode 100644 index 000000000000..4cbbebdb50e0 --- /dev/null +++ b/gcc/testsuite/rust/compile/unstable-fn.rs @@ -0,0 +1,2 @@ +#[unstable(feature = "some_feature", issue = "12345")] +pub fn foo() {}