From 4bde92c17674ba5ac8de4123e0c1023d1e29a60f Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Mon, 5 Mar 2018 08:12:13 -0800 Subject: rustc: Fix ICE with `#[target_feature]` on module This commit fixes an ICE in rustc when `#[target_feature]` was applied to items other than functions due to the way the feature was validated. --- src/test/ui/target-feature-wrong.rs | 4 ++++ src/test/ui/target-feature-wrong.stderr | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src/test') diff --git a/src/test/ui/target-feature-wrong.rs b/src/test/ui/target-feature-wrong.rs index e70d549ed57..c1e6245d24b 100644 --- a/src/test/ui/target-feature-wrong.rs +++ b/src/test/ui/target-feature-wrong.rs @@ -29,6 +29,10 @@ unsafe fn foo() {} //~^ ERROR: can only be applied to `unsafe` function fn bar() {} +#[target_feature(enable = "sse2")] +//~^ ERROR: should be applied to a function +mod another {} + fn main() { unsafe { foo(); diff --git a/src/test/ui/target-feature-wrong.stderr b/src/test/ui/target-feature-wrong.stderr index 07bad482591..0fa6910f2bb 100644 --- a/src/test/ui/target-feature-wrong.stderr +++ b/src/test/ui/target-feature-wrong.stderr @@ -28,5 +28,14 @@ error: #[target_feature(..)] can only be applied to `unsafe` function LL | #[target_feature(enable = "sse2")] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -error: aborting due to 4 previous errors +error: attribute should be applied to a function + --> $DIR/target-feature-wrong.rs:32:1 + | +LL | #[target_feature(enable = "sse2")] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +LL | //~^ ERROR: should be applied to a function +LL | mod another {} + | -------------- not a function + +error: aborting due to 5 previous errors -- cgit 1.4.1-3-g733a5