diff options
Diffstat (limited to 'src/test/ui/rfcs/rfc-2396-target_feature-11/check-pass.rs')
-rw-r--r-- | src/test/ui/rfcs/rfc-2396-target_feature-11/check-pass.rs | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/test/ui/rfcs/rfc-2396-target_feature-11/check-pass.rs b/src/test/ui/rfcs/rfc-2396-target_feature-11/check-pass.rs deleted file mode 100644 index e0842bfa4..000000000 --- a/src/test/ui/rfcs/rfc-2396-target_feature-11/check-pass.rs +++ /dev/null @@ -1,52 +0,0 @@ -// Tests the new rules added by RFC 2396, including: -// - applying `#[target_feature]` to safe functions is allowed -// - calling functions with `#[target_feature]` is allowed in -// functions which have (at least) the same features -// - calling functions with `#[target_feature]` is allowed in -// unsafe contexts -// - functions with `#[target_feature]` can coerce to unsafe fn pointers - -// check-pass -// only-x86_64 -// revisions: mir thir -// [thir]compile-flags: -Z thir-unsafeck - -#![feature(target_feature_11)] - -#[target_feature(enable = "sse2")] -const fn sse2() {} - -#[cfg(target_feature = "sse2")] -const SSE2_ONLY: () = unsafe { - sse2(); -}; - -#[target_feature(enable = "sse2")] -fn also_sse2() { - sse2(); -} - -#[target_feature(enable = "sse2")] -#[target_feature(enable = "avx")] -fn sse2_and_avx() { - sse2(); -} - -struct Foo; - -impl Foo { - #[target_feature(enable = "sse2")] - fn sse2(&self) { - sse2(); - } -} - -fn main() { - if cfg!(target_feature = "sse2") { - unsafe { - sse2(); - Foo.sse2(); - } - } - let sse2_ptr: unsafe fn() = sse2; -} |