]> git.lizzy.rs Git - rust.git/blobdiff - src/shims/tls.rs
Replace deprecated `collections::Bound`
[rust.git] / src / shims / tls.rs
index 2ca860367effe0c8330ab55eaf06840039d42698..3339e3bee19990d2378759a9803fca3d842abdbf 100644 (file)
@@ -9,6 +9,7 @@
 use rustc_data_structures::fx::FxHashMap;
 use rustc_middle::ty;
 use rustc_target::abi::{Size, HasDataLayout};
+use rustc_target::spec::abi::Abi;
 
 use crate::*;
 
@@ -65,7 +66,7 @@ impl<'tcx> TlsData<'tcx> {
     pub fn create_tls_key(&mut self, dtor: Option<ty::Instance<'tcx>>, max_size: Size) -> InterpResult<'tcx, TlsKey> {
         let new_key = self.next_key;
         self.next_key += 1;
-        self.keys.insert(new_key, TlsEntry { data: Default::default(), dtor }).unwrap_none();
+        self.keys.try_insert(new_key, TlsEntry { data: Default::default(), dtor }).unwrap();
         trace!("New TLS key allocated: {} with dtor {:?}", new_key, dtor);
 
         if max_size.bits() < 128 && new_key >= (1u128 << max_size.bits() as u128) {
@@ -173,7 +174,7 @@ fn fetch_tls_dtor(
         key: Option<TlsKey>,
         thread_id: ThreadId,
     ) -> Option<(ty::Instance<'tcx>, Scalar<Tag>, TlsKey)> {
-        use std::collections::Bound::*;
+        use std::ops::Bound::*;
 
         let thread_local = &mut self.keys;
         let start = match key {
@@ -244,8 +245,9 @@ fn schedule_windows_tls_dtors(&mut self) -> InterpResult<'tcx> {
         let ret_place = MPlaceTy::dangling(this.machine.layouts.unit, this).into();
         this.call_function(
             thread_callback,
+            Abi::System { unwind: false },
             &[Scalar::null_ptr(this).into(), reason.into(), Scalar::null_ptr(this).into()],
-            Some(ret_place),
+            Some(&ret_place),
             StackPopCleanup::None { cleanup: true },
         )?;
 
@@ -266,8 +268,9 @@ fn schedule_macos_tls_dtor(&mut self) -> InterpResult<'tcx, bool> {
             let ret_place = MPlaceTy::dangling(this.machine.layouts.unit, this).into();
             this.call_function(
                 instance,
+                Abi::C { unwind: false },
                 &[data.into()],
-                Some(ret_place),
+                Some(&ret_place),
                 StackPopCleanup::None { cleanup: true },
             )?;
 
@@ -306,8 +309,9 @@ fn schedule_next_pthread_tls_dtor(&mut self) -> InterpResult<'tcx, bool> {
             let ret_place = MPlaceTy::dangling(this.machine.layouts.unit, this).into();
             this.call_function(
                 instance,
+                Abi::C { unwind: false },
                 &[ptr.into()],
-                Some(ret_place),
+                Some(&ret_place),
                 StackPopCleanup::None { cleanup: true },
             )?;