Rollup merge of #95006 - tmiasko:thread-local-static, r=wesleywiser

Reject `#[thread_local]` attribute on non-static items
This commit is contained in:
Dylan DPC 2022-04-16 19:42:02 +02:00 committed by GitHub
commit 3dced80298
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,30 @@
// Check that #[thread_local] attribute is rejected on non-static items.
#![feature(thread_local)]
#[thread_local]
//~^ ERROR attribute should be applied to a static
const A: u32 = 0;
#[thread_local]
//~^ ERROR attribute should be applied to a static
fn main() {
#[thread_local] || {};
//~^ ERROR attribute should be applied to a static
}
struct S {
#[thread_local]
//~^ ERROR attribute should be applied to a static
a: String,
b: String,
}
#[thread_local]
// Static. OK.
static B: u32 = 0;
extern "C" {
#[thread_local]
// Foreign static. OK.
static C: u32;
}

View file

@ -0,0 +1,38 @@
error: attribute should be applied to a static
--> $DIR/non-static.rs:4:1
|
LL | #[thread_local]
| ^^^^^^^^^^^^^^^
LL |
LL | const A: u32 = 0;
| ----------------- not a static
error: attribute should be applied to a static
--> $DIR/non-static.rs:8:1
|
LL | #[thread_local]
| ^^^^^^^^^^^^^^^
LL |
LL | / fn main() {
LL | | #[thread_local] || {};
LL | |
LL | | }
| |_- not a static
error: attribute should be applied to a static
--> $DIR/non-static.rs:11:5
|
LL | #[thread_local] || {};
| ^^^^^^^^^^^^^^^ ----- not a static
error: attribute should be applied to a static
--> $DIR/non-static.rs:16:5
|
LL | #[thread_local]
| ^^^^^^^^^^^^^^^
LL |
LL | a: String,
| --------- not a static
error: aborting due to 4 previous errors