https://gcc.gnu.org/g:581c43091873b0df860f154c53fdefba393095e9

commit 581c43091873b0df860f154c53fdefba393095e9
Author: Owen Avery <powerboat9.ga...@gmail.com>
Date:   Tue Mar 26 21:57:17 2024 -0400

    Recognize rustc_deprecated as a builtin attribute
    
    gcc/rust/ChangeLog:
    
            * util/rust-attribute-values.h
            (Attributes::RUSTC_DEPRECATED): New.
            * util/rust-attributes.cc
            (__definitions): Add Attributes::RUSTC_DEPRECATED.
    
    gcc/testsuite/ChangeLog:
    
            * rust/compile/deprecated-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            | 1 +
 gcc/testsuite/rust/compile/deprecated-fn.rs | 4 ++++
 3 files changed, 6 insertions(+)

diff --git a/gcc/rust/util/rust-attribute-values.h 
b/gcc/rust/util/rust-attribute-values.h
index e284cec1a161..04aef99be68f 100644
--- a/gcc/rust/util/rust-attribute-values.h
+++ b/gcc/rust/util/rust-attribute-values.h
@@ -48,6 +48,7 @@ public:
   static constexpr auto &TARGET_FEATURE = "target_feature";
   // From now on, these are reserved by the compiler and gated through
   // #![feature(rustc_attrs)]
+  static constexpr auto &RUSTC_DEPRECATED = "rustc_deprecated";
   static constexpr auto &RUSTC_INHERIT_OVERFLOW_CHECKS
     = "rustc_inherit_overflow_checks";
   static constexpr auto &STABLE = "stable";
diff --git a/gcc/rust/util/rust-attributes.cc b/gcc/rust/util/rust-attributes.cc
index eac298082992..e10918b2f8d0 100644
--- a/gcc/rust/util/rust-attributes.cc
+++ b/gcc/rust/util/rust-attributes.cc
@@ -58,6 +58,7 @@ static const BuiltinAttrDefinition __definitions[]
      {Attrs::TARGET_FEATURE, CODE_GENERATION},
      // From now on, these are reserved by the compiler and gated through
      // #![feature(rustc_attrs)]
+     {Attrs::RUSTC_DEPRECATED, STATIC_ANALYSIS},
      {Attrs::RUSTC_INHERIT_OVERFLOW_CHECKS, CODE_GENERATION},
      {Attrs::STABLE, STATIC_ANALYSIS}};
 
diff --git a/gcc/testsuite/rust/compile/deprecated-fn.rs 
b/gcc/testsuite/rust/compile/deprecated-fn.rs
new file mode 100644
index 000000000000..4083593b30b5
--- /dev/null
+++ b/gcc/testsuite/rust/compile/deprecated-fn.rs
@@ -0,0 +1,4 @@
+#![feature(rustc_attrs)]
+
+#[rustc_deprecated(since = "right now", reason = "a whim")]
+pub fn foo() {}

Reply via email to