]> git.lizzy.rs Git - rust.git/blobdiff - src/abi/mod.rs
Rustup to rustc 1.40.0-nightly (9e346646e 2019-11-08)
[rust.git] / src / abi / mod.rs
index 30d59949df81428e464a7ddc68e10fd881f83277..881174646afe7bbd32c025ec650debee2fd020b8 100644 (file)
@@ -26,8 +26,8 @@ fn clif_sig_from_fn_sig<'tcx>(
         abi => abi,
     };
     let (call_conv, inputs, output): (CallConv, Vec<Ty>, Ty) = match abi {
-        Abi::Rust => (CallConv::SystemV, sig.inputs().to_vec(), sig.output()),
-        Abi::C => (CallConv::SystemV, sig.inputs().to_vec(), sig.output()),
+        Abi::Rust => (crate::default_call_conv(tcx.sess), sig.inputs().to_vec(), sig.output()),
+        Abi::C => (crate::default_call_conv(tcx.sess), sig.inputs().to_vec(), sig.output()),
         Abi::RustCall => {
             assert_eq!(sig.inputs().len(), 2);
             let extra_args = match sig.inputs().last().unwrap().kind {
@@ -36,10 +36,10 @@ fn clif_sig_from_fn_sig<'tcx>(
             };
             let mut inputs: Vec<Ty> = vec![sig.inputs()[0]];
             inputs.extend(extra_args.types());
-            (CallConv::SystemV, inputs, sig.output())
+            (crate::default_call_conv(tcx.sess), inputs, sig.output())
         }
         Abi::System => unreachable!(),
-        Abi::RustIntrinsic => (CallConv::SystemV, sig.inputs().to_vec(), sig.output()),
+        Abi::RustIntrinsic => (crate::default_call_conv(tcx.sess), sig.inputs().to_vec(), sig.output()),
         _ => unimplemented!("unsupported abi {:?}", sig.abi),
     };
 
@@ -142,7 +142,7 @@ fn lib_call(
         let sig = Signature {
             params: input_tys.iter().cloned().map(AbiParam::new).collect(),
             returns: output_tys.iter().cloned().map(AbiParam::new).collect(),
-            call_conv: CallConv::SystemV,
+            call_conv: crate::default_call_conv(self.tcx.sess),
         };
         let func_id = self
             .module
@@ -282,10 +282,7 @@ enum ArgKind<'tcx> {
     for (local, arg_kind, ty) in func_params {
         let layout = fx.layout_of(ty);
 
-        let is_ssa = !ssa_analyzed
-            .get(&local)
-            .unwrap()
-            .contains(crate::analyze::Flags::NOT_SSA);
+        let is_ssa = *ssa_analyzed.get(&local).unwrap() == crate::analyze::SsaKind::Ssa;
 
         match arg_kind {
             ArgKind::Normal(Some(val)) => {
@@ -339,10 +336,7 @@ enum ArgKind<'tcx> {
         let ty = fx.mir.local_decls[local].ty;
         let layout = fx.layout_of(ty);
 
-        let is_ssa = !ssa_analyzed
-            .get(&local)
-            .unwrap()
-            .contains(crate::analyze::Flags::NOT_SSA);
+        let is_ssa = *ssa_analyzed.get(&local).unwrap() == crate::analyze::SsaKind::Ssa;
 
         local_place(fx, local, layout, is_ssa);
     }
@@ -357,6 +351,7 @@ pub fn codegen_terminator_call<'tcx>(
     func: &Operand<'tcx>,
     args: &[Operand<'tcx>],
     destination: &Option<(Place<'tcx>, BasicBlock)>,
+    span: Span,
 ) {
     let fn_ty = fx.monomorphize(&func.ty(fx.mir, fx.tcx));
     let sig = fx
@@ -384,7 +379,7 @@ pub fn codegen_terminator_call<'tcx>(
 
         match instance.def {
             InstanceDef::Intrinsic(_) => {
-                crate::intrinsics::codegen_intrinsic_call(fx, instance, args, destination);
+                crate::intrinsics::codegen_intrinsic_call(fx, instance, args, destination, span);
                 return;
             }
             InstanceDef::DropGlue(_, None) => {