@@ -585,12 +585,17 @@ impl Conflicts<'a> {
585
585
586
586
fn record_terminator_conflicts ( & mut self , term : & Terminator < ' _ > ) {
587
587
match & term. kind {
588
- TerminatorKind :: DropAndReplace { location, value, target : _, unwind : _ } => {
588
+ TerminatorKind :: DropAndReplace {
589
+ place : dropped_place,
590
+ value,
591
+ target : _,
592
+ unwind : _,
593
+ } => {
589
594
if let Some ( place) = value. place ( ) {
590
- if !place. is_indirect ( ) && !location . is_indirect ( ) {
595
+ if !place. is_indirect ( ) && !dropped_place . is_indirect ( ) {
591
596
self . record_local_conflict (
592
597
place. local ,
593
- location . local ,
598
+ dropped_place . local ,
594
599
"DropAndReplace operand overlap" ,
595
600
) ;
596
601
}
@@ -613,6 +618,7 @@ impl Conflicts<'a> {
613
618
destination : Some ( ( dest_place, _) ) ,
614
619
cleanup : _,
615
620
from_hir_call : _,
621
+ fn_span : _,
616
622
} => {
617
623
// No arguments may overlap with the destination.
618
624
for arg in args. iter ( ) . chain ( Some ( func) ) {
@@ -701,7 +707,7 @@ impl Conflicts<'a> {
701
707
InlineAsmOperand :: Out { reg : _, late : _, place : None }
702
708
| InlineAsmOperand :: Const { value : _ }
703
709
| InlineAsmOperand :: SymFn { value : _ }
704
- | InlineAsmOperand :: SymStatic { value : _ } => { }
710
+ | InlineAsmOperand :: SymStatic { def_id : _ } => { }
705
711
}
706
712
}
707
713
}
@@ -717,7 +723,7 @@ impl Conflicts<'a> {
717
723
| InlineAsmOperand :: In { reg : _, value : _ }
718
724
| InlineAsmOperand :: Out { reg : _, late : _, place : None }
719
725
| InlineAsmOperand :: SymFn { value : _ }
720
- | InlineAsmOperand :: SymStatic { value : _ } => { }
726
+ | InlineAsmOperand :: SymStatic { def_id : _ } => { }
721
727
}
722
728
}
723
729
}
@@ -732,7 +738,7 @@ impl Conflicts<'a> {
732
738
| TerminatorKind :: Drop { .. }
733
739
| TerminatorKind :: Assert { .. }
734
740
| TerminatorKind :: GeneratorDrop
735
- | TerminatorKind :: FalseEdges { .. }
741
+ | TerminatorKind :: FalseEdge { .. }
736
742
| TerminatorKind :: FalseUnwind { .. } => { }
737
743
}
738
744
}
@@ -759,7 +765,7 @@ impl Conflicts<'a> {
759
765
}
760
766
761
767
/// Merges the conflicts of `a` and `b`, so that each one inherits all conflicts of the other.
762
- ///
768
+ ///
763
769
/// `can_unify` must have returned `true` for the same locals, or this may panic or lead to
764
770
/// miscompiles.
765
771
///
0 commit comments