From 22e3a8506f6d8ac9457214caf69de775c36b94ec Mon Sep 17 00:00:00 2001 From: Eric Holk Date: Tue, 24 Jul 2012 14:55:38 -0700 Subject: [PATCH] Test case for #3005 --- src/test/auxiliary/cci_intrinsic.rs | 19 +++++++++++++++++++ src/test/run-pass/intrinsic-atomics-cc.rs | 13 +++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/test/auxiliary/cci_intrinsic.rs create mode 100644 src/test/run-pass/intrinsic-atomics-cc.rs diff --git a/src/test/auxiliary/cci_intrinsic.rs b/src/test/auxiliary/cci_intrinsic.rs new file mode 100644 index 00000000000..886a8d1bfe1 --- /dev/null +++ b/src/test/auxiliary/cci_intrinsic.rs @@ -0,0 +1,19 @@ +#[abi = "rust-intrinsic"] +extern mod rusti { + fn atomic_xchng(&dst: int, src: int) -> int; + fn atomic_xchng_acq(&dst: int, src: int) -> int; + fn atomic_xchng_rel(&dst: int, src: int) -> int; + + fn atomic_add(&dst: int, src: int) -> int; + fn atomic_add_acq(&dst: int, src: int) -> int; + fn atomic_add_rel(&dst: int, src: int) -> int; + + fn atomic_sub(&dst: int, src: int) -> int; + fn atomic_sub_acq(&dst: int, src: int) -> int; + fn atomic_sub_rel(&dst: int, src: int) -> int; +} + +#[inline(always)] +fn atomic_xchng(&dst: int, src: int) -> int { + rusti::atomic_xchng(dst, src) +} \ No newline at end of file diff --git a/src/test/run-pass/intrinsic-atomics-cc.rs b/src/test/run-pass/intrinsic-atomics-cc.rs new file mode 100644 index 00000000000..f3649122db7 --- /dev/null +++ b/src/test/run-pass/intrinsic-atomics-cc.rs @@ -0,0 +1,13 @@ +// xfail-fast - check-fast doesn't understand aux-build +// aux-build:cci_intrinsic.rs + +// xfail-check + +use cci_intrinsic; +import cci_intrinsic::atomic_xchng; + +fn main() { + let mut x = 1; + atomic_xchng(x, 5); + assert x == 5; +}