@@ -73,8 +73,8 @@ are not marked as `unsafe`:
73
73
74
74
``` rust
75
75
// Example 1:
76
- #[target_feature = " sse2" ] unsafe fn foo () { } // RFC2045
77
- #[target_feature = " sse2" ] fn bar () { } // NEW
76
+ #[target_feature(enable = " sse2" ) ] unsafe fn foo () { } // RFC2045
77
+ #[target_feature(enable = " sse2" ) ] fn bar () { } // NEW
78
78
79
79
// This function does not have the "sse2" target feature:
80
80
fn meow () {
@@ -84,15 +84,15 @@ fn meow() {
84
84
unsafe { bar () }; // OK
85
85
}
86
86
87
- #[target_feature = " sse2" ]
87
+ #[target_feature(enable = " sse2" ) ]
88
88
fn bark () {
89
89
foo (); // ERROR (foo is unsafe: unsafe block required)
90
90
unsafe { foo () }; // OK
91
91
bar (); // OK (bark is sse2 and bar is safe)
92
92
unsafe { bar () }; // OK (as well - warning: unnecessary unsafe block)
93
93
}
94
94
95
- #[target_feature = " avx" ] // avx != sse2
95
+ #[target_feature(enable = " avx" ) ] // avx != sse2
96
96
fn moo () {
97
97
foo (); // ERROR (unsafe block required)
98
98
unsafe { foo () }; // OK
@@ -132,7 +132,7 @@ method implementations:
132
132
trait Foo { fn foo (); }
133
133
struct Fooish ();
134
134
impl Foo for Fooish {
135
- #[target_feature = " sse2" ] fn foo () { }
135
+ #[target_feature(enable = " sse2" ) ] fn foo () { }
136
136
// ^ ERROR: #[target_feature] on trait method impl requires
137
137
// unsafe fn but Foo::foo is safe
138
138
// (this is already an error per RFC2045)
@@ -141,7 +141,7 @@ impl Foo for Fooish {
141
141
trait Bar { unsafe fn bar (); }
142
142
struct Barish ();
143
143
impl Bar for Barish {
144
- #[target_feature = " sse2" ] unsafe fn bar () { } // OK (RFC2045)
144
+ #[target_feature(enable = " sse2" ) ] unsafe fn bar () { } // OK (RFC2045)
145
145
}
146
146
```
147
147
@@ -150,7 +150,7 @@ impl Bar for Barish {
150
150
151
151
``` rust
152
152
// Example 3
153
- #[target_feature] fn meow () {}
153
+ #[target_feature(enable = " avx " ) ] fn meow () {}
154
154
155
155
static x : fn () -> () = meow ;
156
156
// ^ ERROR: meow can only be assigned to unsafe fn pointers due to
0 commit comments