2018-08-30 12:18:55 +00:00
|
|
|
// run-pass
|
2016-02-22 11:12:14 +00:00
|
|
|
// ignore-windows
|
2016-02-20 12:38:30 +00:00
|
|
|
// aux-build:thread-local-extern-static.rs
|
|
|
|
|
2017-08-08 15:22:51 +00:00
|
|
|
#![feature(cfg_target_thread_local, thread_local)]
|
2016-02-19 21:09:47 +00:00
|
|
|
|
2017-08-08 15:22:51 +00:00
|
|
|
#[cfg(target_thread_local)]
|
2016-01-12 20:02:06 +00:00
|
|
|
extern crate thread_local_extern_static;
|
|
|
|
|
2017-08-08 15:22:51 +00:00
|
|
|
#[cfg(target_thread_local)]
|
|
|
|
use std::cell::Cell;
|
|
|
|
|
|
|
|
#[cfg(target_thread_local)]
|
2020-09-01 21:12:52 +00:00
|
|
|
extern "C" {
|
2017-08-08 15:22:51 +00:00
|
|
|
#[thread_local]
|
|
|
|
static FOO: Cell<u32>;
|
2016-01-12 20:02:06 +00:00
|
|
|
}
|
|
|
|
|
2017-08-08 15:22:51 +00:00
|
|
|
#[cfg(target_thread_local)]
|
2016-01-12 20:02:06 +00:00
|
|
|
fn main() {
|
2017-07-08 00:01:11 +00:00
|
|
|
unsafe {
|
2017-08-08 15:22:51 +00:00
|
|
|
assert_eq!(FOO.get(), 3);
|
2017-07-08 00:01:11 +00:00
|
|
|
}
|
2016-01-12 20:02:06 +00:00
|
|
|
}
|
2017-08-08 15:22:51 +00:00
|
|
|
|
|
|
|
#[cfg(not(target_thread_local))]
|
|
|
|
fn main() {}
|