Skip to content

Commit dce2665

Browse files
authored
Rollup merge of #129738 - nnethercote:rustc_mir_transform-cleanups, r=cjgillot
`rustc_mir_transform` cleanups A bunch of small improvements I made while looking closely at this code. r? `@saethlin`
2 parents e003917 + ac7a293 commit dce2665

File tree

4 files changed

+100
-202
lines changed

4 files changed

+100
-202
lines changed

compiler/rustc_mir_transform/src/add_moves_for_packed_drops.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ fn add_move_for_packed_drop<'tcx>(
8686

8787
let source_info = terminator.source_info;
8888
let ty = place.ty(body, tcx).ty;
89-
let temp = patch.new_temp(ty, terminator.source_info.span);
89+
let temp = patch.new_temp(ty, source_info.span);
9090

9191
let storage_dead_block = patch.new_block(BasicBlockData {
9292
statements: vec![Statement { source_info, kind: StatementKind::StorageDead(temp) }],

compiler/rustc_mir_transform/src/check_packed_ref.rs

+11-18
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,17 @@ impl<'tcx> Visitor<'tcx> for PackedRefChecker<'_, 'tcx> {
3737
}
3838

3939
fn visit_place(&mut self, place: &Place<'tcx>, context: PlaceContext, _location: Location) {
40-
if context.is_borrow() {
41-
if util::is_disaligned(self.tcx, self.body, self.param_env, *place) {
42-
let def_id = self.body.source.instance.def_id();
43-
if let Some(impl_def_id) = self.tcx.impl_of_method(def_id)
44-
&& self.tcx.is_builtin_derived(impl_def_id)
45-
{
46-
// If we ever reach here it means that the generated derive
47-
// code is somehow doing an unaligned reference, which it
48-
// shouldn't do.
49-
span_bug!(
50-
self.source_info.span,
51-
"builtin derive created an unaligned reference"
52-
);
53-
} else {
54-
self.tcx
55-
.dcx()
56-
.emit_err(errors::UnalignedPackedRef { span: self.source_info.span });
57-
}
40+
if context.is_borrow() && util::is_disaligned(self.tcx, self.body, self.param_env, *place) {
41+
let def_id = self.body.source.instance.def_id();
42+
if let Some(impl_def_id) = self.tcx.impl_of_method(def_id)
43+
&& self.tcx.is_builtin_derived(impl_def_id)
44+
{
45+
// If we ever reach here it means that the generated derive
46+
// code is somehow doing an unaligned reference, which it
47+
// shouldn't do.
48+
span_bug!(self.source_info.span, "builtin derive created an unaligned reference");
49+
} else {
50+
self.tcx.dcx().emit_err(errors::UnalignedPackedRef { span: self.source_info.span });
5851
}
5952
}
6053
}

0 commit comments

Comments
 (0)