| // 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; |
| } |