self.cton_type(arg.layout().ty).unwrap(),
arg.load_value(self),
)
- }).unzip();
+ })
+ .unzip();
let return_layout = self.layout_of(return_ty);
let return_ty = if let ty::Tuple(tup) = return_ty.sty {
if !tup.is_empty() {
arg_ty,
)
}
- }).collect::<Vec<(Local, ArgKind, Ty)>>();
+ })
+ .collect::<Vec<(Local, ArgKind, Ty)>>();
fx.bcx.switch_to_block(start_ebb);
};
args.get(0).map(|arg| adjust_arg_for_abi(fx, sig, *arg))
- }.into_iter()
+ }
+ .into_iter()
};
let call_args: Vec<Value> = return_ptr
args.into_iter()
.skip(1)
.map(|arg| adjust_arg_for_abi(fx, sig, arg)),
- ).collect::<Vec<_>>();
+ )
+ .collect::<Vec<_>>();
let sig = fx.bcx.import_signature(cton_sig_from_fn_ty(fx.tcx, fn_ty));
let call_inst = if let Some(func_ref) = func_ref {
tcx,
Some(inst.def_id()),
&mut mir,
- ).unwrap();
+ )
+ .unwrap();
String::from_utf8(mir.into_inner()).unwrap()
}
InstanceDef::Item(_)
if cfg!(debug_assertions) {
::cranelift::codegen::write::decorate_function(&mut writer, &mut cton, &func, None)
.unwrap();
- let clif_file_name = concat!(env!("CARGO_MANIFEST_DIR"), "/target/out/clif/").to_string() + &tcx.symbol_name(instance).as_str();
+ let clif_file_name = concat!(env!("CARGO_MANIFEST_DIR"), "/target/out/clif/").to_string()
+ + &tcx.symbol_name(instance).as_str();
::std::fs::write(clif_file_name, cton.as_bytes()).unwrap();
}
&args1[..]
};*/
let (drop_fn, fn_ty) = match ty.sty {
- ty::Dynamic(..) => {
- let fn_ty = drop_fn.ty(bx.cx.tcx);
- let sig = common::ty_fn_sig(bx.cx, fn_ty);
- let sig = bx.tcx().normalize_erasing_late_bound_regions(
- ty::ParamEnv::reveal_all(),
- &sig,
- );
- let fn_ty = FnType::new_vtable(bx.cx, sig, &[]);
- let vtable = args[1];
- args = &args[..1];
- (meth::DESTRUCTOR.get_fn(&bx, vtable, &fn_ty), fn_ty)
- }
- _ => {
- let value = place.to_cvalue(fx);
- (callee::get_fn(bx.cx, drop_fn),
- FnType::of_instance(bx.cx, &drop_fn))
- }
+ ty::Dynamic(..) => {
+ let fn_ty = drop_fn.ty(bx.cx.tcx);
+ let sig = common::ty_fn_sig(bx.cx, fn_ty);
+ let sig = bx.tcx().normalize_erasing_late_bound_regions(
+ ty::ParamEnv::reveal_all(),
+ &sig,
+ );
+ let fn_ty = FnType::new_vtable(bx.cx, sig, &[]);
+ let vtable = args[1];
+ args = &args[..1];
+ (meth::DESTRUCTOR.get_fn(&bx, vtable, &fn_ty), fn_ty)
+ }
+ _ => {
+ let value = place.to_cvalue(fx);
+ (callee::get_fn(bx.cx, drop_fn),
+ FnType::of_instance(bx.cx, &drop_fn))
+ }
};
do_call(self, bx, fn_ty, drop_fn, args,
- Some((ReturnDest::Nothing, target)),
- unwind);*/
+ Some((ReturnDest::Nothing, target)),
+ unwind);*/
}
let target_ebb = fx.get_ebb(*target);
let usize_layout = fx.layout_of(fx.tcx.types.usize);
let len = match place.layout().ty.sty {
ty::Array(_elem_ty, len) => {
- let len = crate::constant::force_eval_const(fx, len).unwrap_usize(fx.tcx) as i64;
+ let len = crate::constant::force_eval_const(fx, len)
+ .unwrap_usize(fx.tcx) as i64;
fx.bcx.ins().iconst(fx.module.pointer_type(), len)
- },
+ }
ty::Slice(_elem_ty) => match place {
CPlace::Addr(_, size, _) => size.unwrap(),
CPlace::Var(_, _) => unreachable!(),
- }
+ },
_ => bug!("Rvalue::Len({:?})", place),
};
lval.write_cvalue(fx, CValue::ByVal(len, usize_layout));
BinOp::Sub => fx.bcx.ins().isub(lhs, rhs),
BinOp::Mul => fx.bcx.ins().imul(lhs, rhs),
BinOp::Shl => fx.bcx.ins().ishl(lhs, rhs),
- BinOp::Shr => if !signed {
- fx.bcx.ins().ushr(lhs, rhs)
- } else {
- fx.bcx.ins().sshr(lhs, rhs)
- },
+ BinOp::Shr => {
+ if !signed {
+ fx.bcx.ins().ushr(lhs, rhs)
+ } else {
+ fx.bcx.ins().sshr(lhs, rhs)
+ }
+ }
_ => bug!(
"binop {:?} on checked int/uint lhs: {:?} rhs: {:?}",
bin_op,
"some_file.o".to_string(),
FaerieTrapCollection::Disabled,
FaerieBuilder::default_libcall_names(),
- ).unwrap(),
+ )
+ .unwrap(),
);
assert_eq!(pointer_ty(tcx), faerie_module.pointer_type());
writable: false,
},
metadata.clone(),
- ).unwrap();
+ )
+ .unwrap();
for &crate_type in sess.opts.crate_types.iter() {
match crate_type {
metadata.len() as u64,
),
::std::io::Cursor::new(metadata.clone()),
- ).unwrap();
+ )
+ .unwrap();
if should_codegen(sess) {
let obj = artifact.emit().unwrap();
builder
.append(
&ar::Header::new(b"data.o".to_vec(), obj.len() as u64),
::std::io::Cursor::new(obj),
- ).unwrap();
+ )
+ .unwrap();
}
}
_ => sess.fatal(&format!("Unsupported crate type: {:?}", crate_type)),
let mut ccx = ConstantCx::default();
let mut log = if cfg!(debug_assertions) {
- Some(::std::fs::File::create(concat!(env!("CARGO_MANIFEST_DIR"), "/target/out/log.txt")).unwrap())
+ Some(
+ ::std::fs::File::create(concat!(env!("CARGO_MANIFEST_DIR"), "/target/out/log.txt"))
+ .unwrap(),
+ )
} else {
None
};
ParamEnv::reveal_all(),
start_def_id,
tcx.intern_substs(&[main_ret_ty.into()]),
- ).unwrap();
+ )
+ .unwrap();
let (start_name, start_sig) = get_function_name_and_sig(tcx, start_instance);
let start_func_id = m