]> git.proxmox.com Git - rustc.git/blob - src/test/ui/feature-gates/feature-gate-cfg-target-has-atomic.rs
Update upstream source from tag 'upstream/1.48.0_beta.8+dfsg1'
[rustc.git] / src / test / ui / feature-gates / feature-gate-cfg-target-has-atomic.rs
1 #![feature(intrinsics, lang_items, no_core, rustc_attrs)]
2
3 #![crate_type="rlib"]
4 #![no_core]
5
6 extern "rust-intrinsic" {
7 fn atomic_xadd<T>(dst: *mut T, src: T) -> T;
8 }
9
10 #[lang = "sized"]
11 trait Sized {}
12 #[lang = "copy"]
13 trait Copy {}
14
15 #[cfg(target_has_atomic = "8")]
16 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
17 pub unsafe fn atomic_u8(x: *mut u8) {
18 atomic_xadd(x, 1);
19 atomic_xadd(x, 1);
20 }
21 #[cfg(target_has_atomic = "8")]
22 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
23 pub unsafe fn atomic_i8(x: *mut i8) {
24 atomic_xadd(x, 1);
25 }
26 #[cfg(target_has_atomic = "16")]
27 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
28 pub unsafe fn atomic_u16(x: *mut u16) {
29 atomic_xadd(x, 1);
30 }
31 #[cfg(target_has_atomic = "16")]
32 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
33 pub unsafe fn atomic_i16(x: *mut i16) {
34 atomic_xadd(x, 1);
35 }
36 #[cfg(target_has_atomic = "32")]
37 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
38 pub unsafe fn atomic_u32(x: *mut u32) {
39 atomic_xadd(x, 1);
40 }
41 #[cfg(target_has_atomic = "32")]
42 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
43 pub unsafe fn atomic_i32(x: *mut i32) {
44 atomic_xadd(x, 1);
45 }
46 #[cfg(target_has_atomic = "64")]
47 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
48 pub unsafe fn atomic_u64(x: *mut u64) {
49 atomic_xadd(x, 1);
50 }
51 #[cfg(target_has_atomic = "64")]
52 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
53 pub unsafe fn atomic_i64(x: *mut i64) {
54 atomic_xadd(x, 1);
55 }
56 #[cfg(target_has_atomic = "128")]
57 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
58 pub unsafe fn atomic_u128(x: *mut u128) {
59 atomic_xadd(x, 1);
60 }
61 #[cfg(target_has_atomic = "128")]
62 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
63 pub unsafe fn atomic_i128(x: *mut i128) {
64 atomic_xadd(x, 1);
65 }
66 #[cfg(target_has_atomic = "ptr")]
67 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
68 pub unsafe fn atomic_usize(x: *mut usize) {
69 atomic_xadd(x, 1);
70 }
71 #[cfg(target_has_atomic = "ptr")]
72 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
73 pub unsafe fn atomic_isize(x: *mut isize) {
74 atomic_xadd(x, 1);
75 }
76
77 fn main() {
78 cfg!(target_has_atomic = "8");
79 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
80 cfg!(target_has_atomic = "16");
81 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
82 cfg!(target_has_atomic = "32");
83 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
84 cfg!(target_has_atomic = "64");
85 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
86 cfg!(target_has_atomic = "128");
87 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
88 cfg!(target_has_atomic = "ptr");
89 //~^ ERROR `cfg(target_has_atomic)` is experimental and subject to change
90 cfg!(target_has_atomic_load_store = "8");
91 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
92 cfg!(target_has_atomic_load_store = "16");
93 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
94 cfg!(target_has_atomic_load_store = "32");
95 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
96 cfg!(target_has_atomic_load_store = "64");
97 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
98 cfg!(target_has_atomic_load_store = "128");
99 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
100 cfg!(target_has_atomic_load_store = "ptr");
101 //~^ ERROR `cfg(target_has_atomic_load_store)` is experimental and subject to change
102 cfg!(target_has_atomic_equal_alignment = "8");
103 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
104 cfg!(target_has_atomic_equal_alignment = "16");
105 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
106 cfg!(target_has_atomic_equal_alignment = "32");
107 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
108 cfg!(target_has_atomic_equal_alignment = "64");
109 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
110 cfg!(target_has_atomic_equal_alignment = "128");
111 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
112 cfg!(target_has_atomic_equal_alignment = "ptr");
113 //~^ ERROR `cfg(target_has_atomic_equal_alignment)` is experimental and subject to change
114 }
115
116 #[macro_export]
117 #[rustc_builtin_macro]
118 macro_rules! cfg { () => () }