summary refs log tree commit diff
path: root/src/librustc_codegen_llvm/llvm
diff options
context:
space:
mode:
authorDenis Merigoux <denis.merigoux@gmail.com>2018-08-21 18:08:20 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2018-11-16 14:11:09 +0200
commitb6998662900290db23974e8a7ba3c3864330c368 (patch)
tree106a14db5017479e2faee0d1ec98551c4b68f412 /src/librustc_codegen_llvm/llvm
parent275589150b3ea0f077ccbfd4b6343aaa6e9683ad (diff)
downloadrust-b6998662900290db23974e8a7ba3c3864330c368.tar.gz
rust-b6998662900290db23974e8a7ba3c3864330c368.zip
Generalized AtomicOrdering for BuilderMethods
Diffstat (limited to 'src/librustc_codegen_llvm/llvm')
-rw-r--r--src/librustc_codegen_llvm/llvm/ffi.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/librustc_codegen_llvm/llvm/ffi.rs b/src/librustc_codegen_llvm/llvm/ffi.rs
index b44b611f439..677c108edc3 100644
--- a/src/librustc_codegen_llvm/llvm/ffi.rs
+++ b/src/librustc_codegen_llvm/llvm/ffi.rs
@@ -277,6 +277,22 @@ pub enum AtomicOrdering {
     SequentiallyConsistent = 7,
 }
 
+impl AtomicOrdering {
+    pub fn from_generic(ao : traits::AtomicOrdering) -> Self {
+        match ao {
+            traits::AtomicOrdering::NotAtomic => AtomicOrdering::NotAtomic,
+            traits::AtomicOrdering::Unordered => AtomicOrdering::Unordered,
+            traits::AtomicOrdering::Monotonic => AtomicOrdering::Monotonic,
+            traits::AtomicOrdering::Acquire => AtomicOrdering::Acquire,
+            traits::AtomicOrdering::Release => AtomicOrdering::Release,
+            traits::AtomicOrdering::AcquireRelease => AtomicOrdering::AcquireRelease,
+            traits::AtomicOrdering::SequentiallyConsistent =>
+                AtomicOrdering::SequentiallyConsistent
+        }
+    }
+}
+
+
 /// LLVMRustSynchronizationScope
 #[derive(Copy, Clone)]
 #[repr(C)]