]>
Commit | Line | Data |
---|---|---|
dfeec247 XL |
1 | // build-fail |
2 | ||
a7813a04 | 3 | #![feature(core_intrinsics)] |
54a0048b | 4 | #![allow(warnings)] |
abe05a73 | 5 | #![crate_type = "rlib"] |
54a0048b SL |
6 | |
7 | use std::intrinsics; | |
8 | ||
9 | #[derive(Copy, Clone)] | |
abe05a73 XL |
10 | pub struct Foo(i64); |
11 | pub type Bar = &'static Fn(); | |
12 | pub type Quux = [u8; 100]; | |
54a0048b | 13 | |
abe05a73 | 14 | pub unsafe fn test_bool_load(p: &mut bool, v: bool) { |
54a0048b SL |
15 | intrinsics::atomic_load(p); |
16 | //~^ ERROR `atomic_load` intrinsic: expected basic integer type, found `bool` | |
17 | } | |
18 | ||
abe05a73 | 19 | pub unsafe fn test_bool_store(p: &mut bool, v: bool) { |
54a0048b SL |
20 | intrinsics::atomic_store(p, v); |
21 | //~^ ERROR `atomic_store` intrinsic: expected basic integer type, found `bool` | |
22 | } | |
23 | ||
abe05a73 | 24 | pub unsafe fn test_bool_xchg(p: &mut bool, v: bool) { |
54a0048b SL |
25 | intrinsics::atomic_xchg(p, v); |
26 | //~^ ERROR `atomic_xchg` intrinsic: expected basic integer type, found `bool` | |
27 | } | |
28 | ||
abe05a73 | 29 | pub unsafe fn test_bool_cxchg(p: &mut bool, v: bool) { |
54a0048b SL |
30 | intrinsics::atomic_cxchg(p, v, v); |
31 | //~^ ERROR `atomic_cxchg` intrinsic: expected basic integer type, found `bool` | |
32 | } | |
33 | ||
abe05a73 | 34 | pub unsafe fn test_Foo_load(p: &mut Foo, v: Foo) { |
54a0048b SL |
35 | intrinsics::atomic_load(p); |
36 | //~^ ERROR `atomic_load` intrinsic: expected basic integer type, found `Foo` | |
37 | } | |
38 | ||
abe05a73 | 39 | pub unsafe fn test_Foo_store(p: &mut Foo, v: Foo) { |
54a0048b SL |
40 | intrinsics::atomic_store(p, v); |
41 | //~^ ERROR `atomic_store` intrinsic: expected basic integer type, found `Foo` | |
42 | } | |
43 | ||
abe05a73 | 44 | pub unsafe fn test_Foo_xchg(p: &mut Foo, v: Foo) { |
54a0048b SL |
45 | intrinsics::atomic_xchg(p, v); |
46 | //~^ ERROR `atomic_xchg` intrinsic: expected basic integer type, found `Foo` | |
47 | } | |
48 | ||
abe05a73 | 49 | pub unsafe fn test_Foo_cxchg(p: &mut Foo, v: Foo) { |
54a0048b SL |
50 | intrinsics::atomic_cxchg(p, v, v); |
51 | //~^ ERROR `atomic_cxchg` intrinsic: expected basic integer type, found `Foo` | |
52 | } | |
53 | ||
abe05a73 | 54 | pub unsafe fn test_Bar_load(p: &mut Bar, v: Bar) { |
54a0048b | 55 | intrinsics::atomic_load(p); |
1b1a35ee | 56 | //~^ ERROR expected basic integer type, found `&dyn Fn()` |
54a0048b SL |
57 | } |
58 | ||
abe05a73 | 59 | pub unsafe fn test_Bar_store(p: &mut Bar, v: Bar) { |
54a0048b | 60 | intrinsics::atomic_store(p, v); |
1b1a35ee | 61 | //~^ ERROR expected basic integer type, found `&dyn Fn()` |
54a0048b SL |
62 | } |
63 | ||
abe05a73 | 64 | pub unsafe fn test_Bar_xchg(p: &mut Bar, v: Bar) { |
54a0048b | 65 | intrinsics::atomic_xchg(p, v); |
1b1a35ee | 66 | //~^ ERROR expected basic integer type, found `&dyn Fn()` |
54a0048b SL |
67 | } |
68 | ||
abe05a73 | 69 | pub unsafe fn test_Bar_cxchg(p: &mut Bar, v: Bar) { |
54a0048b | 70 | intrinsics::atomic_cxchg(p, v, v); |
1b1a35ee | 71 | //~^ ERROR expected basic integer type, found `&dyn Fn()` |
54a0048b SL |
72 | } |
73 | ||
abe05a73 | 74 | pub unsafe fn test_Quux_load(p: &mut Quux, v: Quux) { |
54a0048b SL |
75 | intrinsics::atomic_load(p); |
76 | //~^ ERROR `atomic_load` intrinsic: expected basic integer type, found `[u8; 100]` | |
77 | } | |
78 | ||
abe05a73 | 79 | pub unsafe fn test_Quux_store(p: &mut Quux, v: Quux) { |
54a0048b SL |
80 | intrinsics::atomic_store(p, v); |
81 | //~^ ERROR `atomic_store` intrinsic: expected basic integer type, found `[u8; 100]` | |
82 | } | |
83 | ||
abe05a73 | 84 | pub unsafe fn test_Quux_xchg(p: &mut Quux, v: Quux) { |
54a0048b SL |
85 | intrinsics::atomic_xchg(p, v); |
86 | //~^ ERROR `atomic_xchg` intrinsic: expected basic integer type, found `[u8; 100]` | |
87 | } | |
88 | ||
abe05a73 | 89 | pub unsafe fn test_Quux_cxchg(p: &mut Quux, v: Quux) { |
54a0048b SL |
90 | intrinsics::atomic_cxchg(p, v, v); |
91 | //~^ ERROR `atomic_cxchg` intrinsic: expected basic integer type, found `[u8; 100]` | |
92 | } |