about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-12-09 19:53:23 +0000
committerbors <bors@rust-lang.org>2020-12-09 19:53:23 +0000
commitaec0fc58ad5f72055a76a49d14edc4538bc87679 (patch)
tree9b4700d2eaf99b78fcdd04eea228c926fbe3ad60
parentd4048407880212bb820f85d2e06e5fc262cce897 (diff)
parent7760894d3fcd2a1048e8f61d3e64124a94a726d0 (diff)
downloadrust-aec0fc58ad5f72055a76a49d14edc4538bc87679.tar.gz
rust-aec0fc58ad5f72055a76a49d14edc4538bc87679.zip
Auto merge of #77611 - oli-obk:atomic_miri_leakage, r=nagisa
Directly use raw pointers in `AtomicPtr` store/load

I was unable to find any reason for this limitation in the latest source of LLVM or in the documentation [here](http://llvm.org/docs/Atomics.html#libcalls-atomic).

fixes https://github.com/rust-lang/miri/issues/1574
-rw-r--r--src/intrinsics/mod.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intrinsics/mod.rs b/src/intrinsics/mod.rs
index 3563aa250a9..df8aa1b3e69 100644
--- a/src/intrinsics/mod.rs
+++ b/src/intrinsics/mod.rs
@@ -146,12 +146,12 @@ macro atomic_minmax($fx:expr, $cc:expr, <$T:ident> ($ptr:ident, $src:ident) -> $
 
 macro validate_atomic_type($fx:ident, $intrinsic:ident, $span:ident, $ty:expr) {
     match $ty.kind() {
-        ty::Uint(_) | ty::Int(_) => {}
+        ty::Uint(_) | ty::Int(_) | ty::RawPtr(..) => {}
         _ => {
             $fx.tcx.sess.span_err(
                 $span,
                 &format!(
-                    "`{}` intrinsic: expected basic integer type, found `{:?}`",
+                    "`{}` intrinsic: expected basic integer or raw pointer type, found `{:?}`",
                     $intrinsic, $ty
                 ),
             );