Rustup to rustc 1.69.0-nightly (75a0be98f
2023-02-05)
This commit is contained in:
parent
6dfa3c9513
commit
8494882773
4
build_sysroot/Cargo.lock
generated
4
build_sysroot/Cargo.lock
generated
@ -34,9 +34,9 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cc"
|
name = "cc"
|
||||||
version = "1.0.78"
|
version = "1.0.79"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d"
|
checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "cfg-if"
|
name = "cfg-if"
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
[toolchain]
|
[toolchain]
|
||||||
channel = "nightly-2023-01-27"
|
channel = "nightly-2023-02-06"
|
||||||
components = ["rust-src", "rustc-dev", "llvm-tools-preview"]
|
components = ["rust-src", "rustc-dev", "llvm-tools-preview"]
|
||||||
|
31
src/base.rs
31
src/base.rs
@ -790,17 +790,30 @@ fn is_fat_ptr<'tcx>(fx: &FunctionCx<'_, '_, 'tcx>, ty: Ty<'tcx>) -> bool {
|
|||||||
let val = CValue::const_val(fx, fx.layout_of(fx.tcx.types.usize), val.into());
|
let val = CValue::const_val(fx, fx.layout_of(fx.tcx.types.usize), val.into());
|
||||||
lval.write_cvalue(fx, val);
|
lval.write_cvalue(fx, val);
|
||||||
}
|
}
|
||||||
Rvalue::Aggregate(ref kind, ref operands) => match kind.as_ref() {
|
Rvalue::Aggregate(ref kind, ref operands) => {
|
||||||
AggregateKind::Array(_ty) => {
|
let (variant_index, variant_dest, active_field_index) = match **kind {
|
||||||
for (i, operand) in operands.iter().enumerate() {
|
mir::AggregateKind::Adt(_, variant_index, _, _, active_field_index) => {
|
||||||
let operand = codegen_operand(fx, operand);
|
let variant_dest = lval.downcast_variant(fx, variant_index);
|
||||||
let index = fx.bcx.ins().iconst(fx.pointer_type, i as i64);
|
(variant_index, variant_dest, active_field_index)
|
||||||
let to = lval.place_index(fx, index);
|
|
||||||
to.write_cvalue(fx, operand);
|
|
||||||
}
|
}
|
||||||
|
_ => (VariantIdx::from_u32(0), lval, None),
|
||||||
|
};
|
||||||
|
if active_field_index.is_some() {
|
||||||
|
assert_eq!(operands.len(), 1);
|
||||||
}
|
}
|
||||||
_ => unreachable!("shouldn't exist at codegen {:?}", to_place_and_rval.1),
|
for (i, operand) in operands.iter().enumerate() {
|
||||||
},
|
let operand = codegen_operand(fx, operand);
|
||||||
|
let field_index = active_field_index.unwrap_or(i);
|
||||||
|
let to = if let mir::AggregateKind::Array(_) = **kind {
|
||||||
|
let index = fx.bcx.ins().iconst(fx.pointer_type, field_index as i64);
|
||||||
|
variant_dest.place_index(fx, index)
|
||||||
|
} else {
|
||||||
|
variant_dest.place_field(fx, mir::Field::new(field_index))
|
||||||
|
};
|
||||||
|
to.write_cvalue(fx, operand);
|
||||||
|
}
|
||||||
|
crate::discriminant::codegen_set_discriminant(fx, lval, variant_index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
StatementKind::StorageLive(_)
|
StatementKind::StorageLive(_)
|
||||||
|
Loading…
Reference in New Issue
Block a user