Skip to content

Commit 249a36f

Browse files
committed
Update mir-opt filechecks
1 parent 32185de commit 249a36f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+356
-356
lines changed

Diff for: tests/mir-opt/array_index_is_temporary.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn main() {
1515
// CHECK: debug x => [[x:_.*]];
1616
// CHECK: debug y => [[y:_.*]];
1717
// CHECK: [[y]] = const 1_usize;
18-
// CHECK: [[tmp:_.*]] = [[y]];
18+
// CHECK: [[tmp:_.*]] = copy [[y]];
1919
// CHECK: [[x]][[[tmp]]] =
2020
let mut x = [42, 43, 44];
2121
let mut y = 1;

Diff for: tests/mir-opt/box_expr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
fn main() {
88
// CHECK-LABEL: fn main(
99
// CHECK: [[box:_.*]] = ShallowInitBox(
10-
// CHECK: [[ptr:_.*]] = ((([[box]].0: std::ptr::Unique<S>).0: std::ptr::NonNull<S>).0: *const S);
10+
// CHECK: [[ptr:_.*]] = copy ((([[box]].0: std::ptr::Unique<S>).0: std::ptr::NonNull<S>).0: *const S);
1111
// CHECK: (*[[ptr]]) = S::new() -> [return: [[ret:bb.*]], unwind: [[unwind:bb.*]]];
1212
// CHECK: [[ret]]: {
1313
// CHECK: [[box2:_.*]] = move [[box]];

Diff for: tests/mir-opt/building/match/sort_candidates.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ fn disjoint_ranges(x: i32, b: bool) -> u32 {
2525
// CHECK-LABEL: fn disjoint_ranges(
2626
// CHECK: debug b => _2;
2727
// CHECK: bb0: {
28-
// CHECK: switchInt(_2) -> [0: [[jump:bb.*]], otherwise: {{bb.*}}];
28+
// CHECK: switchInt(copy _2) -> [0: [[jump:bb.*]], otherwise: {{bb.*}}];
2929
// CHECK: [[jump]]: {
3030
// CHECK-NEXT: _0 = const 3_u32;
3131
// CHECK-NEXT: return;

Diff for: tests/mir-opt/building/while_storage.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn while_loop(c: bool) {
1515
// CHECK: bb1: {
1616
// CHECK-NEXT: StorageLive(_3);
1717
// CHECK-NEXT: StorageLive(_2);
18-
// CHECK-NEXT: _2 = _1;
18+
// CHECK-NEXT: _2 = copy _1;
1919
// CHECK-NEXT: _3 = get_bool(move _2) -> [return: bb2, unwind
2020
// CHECK: bb2: {
2121
// CHECK-NEXT: switchInt(move _3) -> [0: bb3, otherwise: bb4];
@@ -29,7 +29,7 @@ fn while_loop(c: bool) {
2929
// CHECK-NEXT: StorageDead(_2);
3030
// CHECK-NEXT: StorageLive(_5);
3131
// CHECK-NEXT: StorageLive(_4);
32-
// CHECK-NEXT: _4 = _1;
32+
// CHECK-NEXT: _4 = copy _1;
3333
// CHECK-NEXT: _5 = get_bool(move _4) -> [return: bb5, unwind
3434
// CHECK: bb5: {
3535
// CHECK-NEXT: switchInt(move _5) -> [0: bb6, otherwise: bb7];

Diff for: tests/mir-opt/const_prop/address_of_pair.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ pub fn fn0() -> bool {
1010
// CHECK: (*[[ptr]]) = const true;
1111
// CHECK-NOT: = const false;
1212
// CHECK-NOT: = const true;
13-
// CHECK: [[tmp:_.*]] = ([[pair]].1: bool);
13+
// CHECK: [[tmp:_.*]] = copy ([[pair]].1: bool);
1414
// CHECK-NOT: = const false;
1515
// CHECK-NOT: = const true;
1616
// CHECK: [[ret]] = Not(move [[tmp]]);
1717
// CHECK-NOT: = const false;
1818
// CHECK-NOT: = const true;
19-
// CHECK: _0 = [[ret]];
19+
// CHECK: _0 = copy [[ret]];
2020
let mut pair = (1, false);
2121
let ptr = core::ptr::addr_of_mut!(pair.1);
2222
pair = (1, false);

Diff for: tests/mir-opt/const_prop/bad_op_unsafe_oob_for_slices.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fn main() {
88
// CHECK-LABEL: fn main(
99
// CHECK: debug a => [[a:_.*]];
1010
// CHECK: debug _b => [[b:_.*]];
11-
// CHECK: [[b]] = (*[[a]])[3 of 4];
11+
// CHECK: [[b]] = copy (*[[a]])[3 of 4];
1212
let a: *const [_] = &[1, 2, 3];
1313
unsafe {
1414
let _b = (*a)[3];

Diff for: tests/mir-opt/const_prop/boxes.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ fn main() {
1111
// CHECK-LABEL: fn main(
1212
// CHECK: debug x => [[x:_.*]];
1313
// CHECK: (*{{_.*}}) = const 42_i32;
14-
// CHECK: [[tmp:_.*]] = (*{{_.*}});
15-
// CHECK: [[x]] = [[tmp]];
14+
// CHECK: [[tmp:_.*]] = copy (*{{_.*}});
15+
// CHECK: [[x]] = copy [[tmp]];
1616
let x = *(#[rustc_box]
1717
Box::new(42))
1818
+ 0;

Diff for: tests/mir-opt/const_prop/indirect_mutation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fn foo() {
1010
// CHECK: _1 = const (1_i32,);
1111
// CHECK: _2 = &mut (_1.0: i32);
1212
// CHECK: (*_2) = const 5_i32;
13-
// CHECK: _4 = (_1.0: i32);
13+
// CHECK: _4 = copy (_1.0: i32);
1414
// CHECK: _3 = Eq(move _4, const 5_i32);
1515

1616
let mut u = (1,);
@@ -25,7 +25,7 @@ fn bar() {
2525
// CHECK: debug y => _4;
2626
// CHECK: _3 = &raw mut (_1.0: i32);
2727
// CHECK: (*_3) = const 5_i32;
28-
// CHECK: _5 = (_1.0: i32);
28+
// CHECK: _5 = copy (_1.0: i32);
2929
// CHECK: _4 = Eq(move _5, const 5_i32);
3030

3131
let mut v = (1,);

Diff for: tests/mir-opt/const_prop/mutable_variable.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ fn main() {
77
// CHECK: debug y => [[y:_.*]];
88
// CHECK: [[x]] = const 42_i32;
99
// CHECK: [[x]] = const 99_i32;
10-
// CHECK: [[y]] = [[x]];
10+
// CHECK: [[y]] = copy [[x]];
1111
let mut x = 42;
1212
x = 99;
1313
let y = x;

Diff for: tests/mir-opt/const_prop/mutable_variable_aggregate.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ fn main() {
88
// CHECK: debug y => [[y:_.*]];
99
// CHECK: [[x]] = const (42_i32, 43_i32);
1010
// CHECK: ([[x]].1: i32) = const 99_i32;
11-
// CHECK: [[y]] = [[x]];
11+
// CHECK: [[y]] = copy [[x]];
1212
let mut x = (42, 43);
1313
x.1 = 99;
1414
let y = x;

Diff for: tests/mir-opt/const_prop/mutable_variable_aggregate_mut_ref.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fn main() {
1010
// CHECK: [[x]] = const (42_i32, 43_i32);
1111
// CHECK: [[z]] = &mut [[x]];
1212
// CHECK: ((*[[z]]).1: i32) = const 99_i32;
13-
// CHECK: [[y]] = [[x]];
13+
// CHECK: [[y]] = copy [[x]];
1414
let mut x = (42, 43);
1515
let z = &mut x;
1616
z.1 = 99;

Diff for: tests/mir-opt/const_prop/mutable_variable_aggregate_partial_read.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fn main() {
99
// CHECK: [[x]] = foo()
1010
// CHECK: ([[x]].1: i32) = const 99_i32;
1111
// CHECK: ([[x]].0: i32) = const 42_i32;
12-
// CHECK: [[y]] = ([[x]].1: i32);
12+
// CHECK: [[y]] = copy ([[x]].1: i32);
1313
let mut x: (i32, i32) = foo();
1414
x.1 = 99;
1515
x.0 = 42;

Diff for: tests/mir-opt/const_prop/mutable_variable_no_prop.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ fn main() {
99
// CHECK: debug x => [[x:_.*]];
1010
// CHECK: debug y => [[y:_.*]];
1111
// CHECK: [[x]] = const 42_u32;
12-
// CHECK: [[tmp:_.*]] = (*{{_.*}});
12+
// CHECK: [[tmp:_.*]] = copy (*{{_.*}});
1313
// CHECK: [[x]] = move [[tmp]];
14-
// CHECK: [[y]] = [[x]];
14+
// CHECK: [[y]] = copy [[x]];
1515
let mut x = 42;
1616
unsafe {
1717
x = STATIC;

Diff for: tests/mir-opt/const_prop/mutable_variable_unprop_assign.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ fn main() {
1111
// CHECK: debug z => [[z:_.*]];
1212
// CHECK: [[a]] = foo()
1313
// CHECK: [[x]] = const (1_i32, 2_i32);
14-
// CHECK: ([[x]].1: i32) = [[a]];
15-
// CHECK: [[y]] = ([[x]].1: i32);
16-
// CHECK: [[z]] = ([[x]].0: i32);
14+
// CHECK: ([[x]].1: i32) = copy [[a]];
15+
// CHECK: [[y]] = copy ([[x]].1: i32);
16+
// CHECK: [[z]] = copy ([[x]].0: i32);
1717
let a = foo();
1818
let mut x: (i32, i32) = (1, 2);
1919
x.1 = a;

Diff for: tests/mir-opt/const_prop/overwrite_with_const_with_params.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ fn size_of<T>() -> usize {
1515
// CHECK-LABEL: fn size_of(
1616
// CHECK: _1 = const 0_usize;
1717
// CHECK-NEXT: _1 = const SizeOfConst::<T>::SIZE;
18-
// CHECK-NEXT: _0 = _1;
18+
// CHECK-NEXT: _0 = copy _1;
1919
let mut a = 0;
2020
a = SizeOfConst::<T>::SIZE;
2121
a

Diff for: tests/mir-opt/const_prop/pointer_expose_provenance.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ fn main() {
1010
// CHECK: [[ptr:_.*]] = const main::FOO;
1111
// CHECK: [[ref:_.*]] = &raw const (*[[ptr]]);
1212
// CHECK: [[x:_.*]] = move [[ref]] as usize (PointerExposeProvenance);
13-
// CHECK: = read([[x]])
13+
// CHECK: = read(copy [[x]])
1414
const FOO: &i32 = &1;
1515
let x = FOO as *const i32 as usize;
1616
read(x);

Diff for: tests/mir-opt/const_prop/slice_len.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
fn main() {
88
// CHECK-LABEL: fn main(
99
// CHECK: debug a => [[a:_.*]];
10-
// CHECK: [[slice:_.*]] = {{.*}} as &[u32] (PointerCoercion(Unsize));
10+
// CHECK: [[slice:_.*]] = copy {{.*}} as &[u32] (PointerCoercion(Unsize));
1111
// CHECK: assert(const true,
1212
// CHECK: [[a]] = const 2_u32;
1313
let a = (&[1u32, 2, 3] as &[u32])[1];

Diff for: tests/mir-opt/copy-prop/borrowed_local.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ fn compare_address() -> bool {
2121
// CHECK: bb0: {
2222
// CHECK-NEXT: _1 = const 5_u8;
2323
// CHECK-NEXT: _2 = &_1;
24-
// CHECK-NEXT: _3 = _1;
24+
// CHECK-NEXT: _3 = copy _1;
2525
// CHECK-NEXT: _4 = &_3;
26-
// CHECK-NEXT: _0 = cmp_ref(_2, _4)
26+
// CHECK-NEXT: _0 = cmp_ref(copy _2, copy _4)
2727
// CHECK: bb1: {
28-
// CHECK-NEXT: _0 = opaque::<u8>(_3)
28+
// CHECK-NEXT: _0 = opaque::<u8>(copy _3)
2929
mir! {
3030
{
3131
let a = 5_u8;
@@ -51,9 +51,9 @@ fn borrowed<T: Copy + Freeze>(x: T) -> bool {
5151
// CHECK-LABEL: fn borrowed(
5252
// CHECK: bb0: {
5353
// CHECK-NEXT: _3 = &_1;
54-
// CHECK-NEXT: _0 = opaque::<&T>(_3)
54+
// CHECK-NEXT: _0 = opaque::<&T>(copy _3)
5555
// CHECK: bb1: {
56-
// CHECK-NEXT: _0 = opaque::<T>(_1)
56+
// CHECK-NEXT: _0 = opaque::<T>(copy _1)
5757
mir! {
5858
{
5959
let a = x;
@@ -74,11 +74,11 @@ fn borrowed<T: Copy + Freeze>(x: T) -> bool {
7474
fn non_freeze<T: Copy>(x: T) -> bool {
7575
// CHECK-LABEL: fn non_freeze(
7676
// CHECK: bb0: {
77-
// CHECK-NEXT: _2 = _1;
77+
// CHECK-NEXT: _2 = copy _1;
7878
// CHECK-NEXT: _3 = &_1;
79-
// CHECK-NEXT: _0 = opaque::<&T>(_3)
79+
// CHECK-NEXT: _0 = opaque::<&T>(copy _3)
8080
// CHECK: bb1: {
81-
// CHECK-NEXT: _0 = opaque::<T>(_2)
81+
// CHECK-NEXT: _0 = opaque::<T>(copy _2)
8282
mir! {
8383
{
8484
let a = x;

Diff for: tests/mir-opt/dataflow-const-prop/array_index.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,6 @@ fn main() {
1616
// CHECK: {{_.*}} = const 4_usize;
1717
// CHECK: {{_.*}} = const true;
1818
// CHECK: assert(const true
19-
// CHECK: [[x]] = [[array_lit]][2 of 3];
19+
// CHECK: [[x]] = copy [[array_lit]][2 of 3];
2020
let x: u32 = [0, 1, 2, 3][2];
2121
}

Diff for: tests/mir-opt/dataflow-const-prop/enum.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ fn statics() {
7373
static RC: &E = &E::V2(4);
7474

7575
// CHECK: [[t:_.*]] = const {alloc5: &&E};
76-
// CHECK: [[e2]] = (*[[t]]);
76+
// CHECK: [[e2]] = copy (*[[t]]);
7777
let e2 = RC;
7878

7979
// CHECK: switchInt({{move _.*}}) -> {{.*}}
@@ -108,7 +108,7 @@ fn mutate_discriminant() -> u8 {
108108
// CHECK: [[a:_.*]] = discriminant({{_.*}});
109109
let a = Discriminant(x);
110110

111-
// CHECK: switchInt([[a]]) -> [0: {{bb.*}}, otherwise: {{bb.*}}];
111+
// CHECK: switchInt(copy [[a]]) -> [0: {{bb.*}}, otherwise: {{bb.*}}];
112112
match a {
113113
0 => bb1,
114114
_ => bad,
@@ -143,8 +143,8 @@ fn multiple(x: bool, i: u8) {
143143
// discriminant(e) => Top
144144
// (e as Some).0 => Top
145145
// CHECK: [[x2]] = const 0_u8;
146-
// CHECK: [[some:_.*]] = (({{_.*}} as Some).0: u8)
147-
// CHECK: [[x2]] = [[some]];
146+
// CHECK: [[some:_.*]] = copy (({{_.*}} as Some).0: u8)
147+
// CHECK: [[x2]] = copy [[some]];
148148
let x2 = match e {
149149
Some(i) => i,
150150
None => 0,
@@ -153,7 +153,7 @@ fn multiple(x: bool, i: u8) {
153153
// Therefore, `x2` should be `Top` here, and no replacement shall happen.
154154

155155
// CHECK-NOT: [[y]] = const
156-
// CHECK: [[y]] = [[x2]];
156+
// CHECK: [[y]] = copy [[x2]];
157157
// CHECK-NOT: [[y]] = const
158158
let y = x2;
159159
}

Diff for: tests/mir-opt/dataflow-const-prop/large_array_index.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ fn main() {
1313
// CHECK: {{_.*}} = const 5000_usize;
1414
// CHECK: {{_.*}} = const true;
1515
// CHECK: assert(const true
16-
// CHECK: [[x]] = [[array_lit]][2 of 3];
16+
// CHECK: [[x]] = copy [[array_lit]][2 of 3];
1717
let x: u8 = [0_u8; 5000][2];
1818
}

Diff for: tests/mir-opt/dataflow-const-prop/ref_without_sb.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ fn main() {
2424
// This should currently not be propagated.
2525

2626
// CHECK-NOT: [[b]] = const
27-
// CHECK: [[b]] = [[a]];
27+
// CHECK: [[b]] = copy [[a]];
2828
// CHECK-NOT: [[b]] = const
2929
let b = a;
3030
}

Diff for: tests/mir-opt/dataflow-const-prop/repeat.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ fn main() {
1414
// CHECK: {{_.*}} = const true;
1515
// CHECK: assert(const true
1616

17-
// CHECK-NOT: [[t:_.*]] = [[array_lit]][_
18-
// CHECK: [[t:_.*]] = [[array_lit]][2 of 3];
17+
// CHECK-NOT: [[t:_.*]] = {{copy|move}} [[array_lit]][_
18+
// CHECK: [[t:_.*]] = copy [[array_lit]][2 of 3];
1919
// CHECK: [[x]] = Add(move [[t]], const 0_u32);
2020
let x: u32 = [42; 8][2] + 0;
2121
}

Diff for: tests/mir-opt/dataflow-const-prop/sibling_ptr.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ fn main() {
2020
*p.add(1) = 1;
2121
}
2222

23-
// CHECK: [[x1]] = ({{_.*}}.1: u8);
23+
// CHECK: [[x1]] = copy ({{_.*}}.1: u8);
2424
let x1 = x.1; // should not be propagated
2525
}

Diff for: tests/mir-opt/dataflow-const-prop/slice_len.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ fn main() {
1717
// CHECK: {{_.*}} = const true;
1818
// CHECK: assert(const true,
1919

20-
// CHECK: [[local]] = (*{{_.*}})[1 of 2];
20+
// CHECK: [[local]] = copy (*{{_.*}})[1 of 2];
2121
let local = (&[1u32, 2, 3] as &[u32])[1];
2222

2323
// CHECK-NOT: {{_.*}} = Len(
@@ -28,7 +28,7 @@ fn main() {
2828
// CHECK: {{_.*}} = const true;
2929
// CHECK: assert(const true,
3030

31-
// CHECK-NOT: [[constant]] = (*{{_.*}})[_
32-
// CHECK: [[constant]] = (*{{_.*}})[1 of 2];
31+
// CHECK-NOT: [[constant]] = {{copy|move}} (*{{_.*}})[_
32+
// CHECK: [[constant]] = copy (*{{_.*}})[1 of 2];
3333
let constant = SLICE[1];
3434
}

Diff for: tests/mir-opt/dataflow-const-prop/struct.rs

+8-8
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,15 @@ fn main() {
4646
const SMALL_VAL: SmallStruct = SmallStruct(4., Some(S(1)), &[]);
4747

4848
// CHECK: [[a1]] = const 4f32;
49-
// CHECK: [[b1]] = ({{_.*}}.1: std::option::Option<S>);
50-
// CHECK: [[c1]] = ({{_.*}}.2: &[f32]);
49+
// CHECK: [[b1]] = copy ({{_.*}}.1: std::option::Option<S>);
50+
// CHECK: [[c1]] = copy ({{_.*}}.2: &[f32]);
5151
let SmallStruct(a1, b1, c1) = SMALL_VAL;
5252

5353
static SMALL_STAT: &SmallStruct = &SmallStruct(9., None, &[13.]);
5454

5555
// CHECK: [[a2]] = const 9f32;
56-
// CHECK: [[b2]] = ((*{{_.*}}).1: std::option::Option<S>);
57-
// CHECK: [[c2]] = ((*{{_.*}}).2: &[f32]);
56+
// CHECK: [[b2]] = copy ((*{{_.*}}).1: std::option::Option<S>);
57+
// CHECK: [[c2]] = copy ((*{{_.*}}).2: &[f32]);
5858
let SmallStruct(a2, b2, c2) = *SMALL_STAT;
5959

6060
// CHECK: [[ss]] = SmallStruct(const 9f32, move {{_.*}}, move {{_.*}});
@@ -63,14 +63,14 @@ fn main() {
6363
const BIG_VAL: BigStruct = BigStruct(25., None, &[]);
6464

6565
// CHECK: [[a3]] = const 25f32;
66-
// CHECK: [[b3]] = ({{_.*}}.1: std::option::Option<S>);
67-
// CHECK: [[c3]] = ({{_.*}}.2: &[f32]);
66+
// CHECK: [[b3]] = copy ({{_.*}}.1: std::option::Option<S>);
67+
// CHECK: [[c3]] = copy ({{_.*}}.2: &[f32]);
6868
let BigStruct(a3, b3, c3) = BIG_VAL;
6969

7070
static BIG_STAT: &BigStruct = &BigStruct(82., Some(S(35)), &[45., 72.]);
7171
// CHECK: [[a4]] = const 82f32;
72-
// CHECK: [[b4]] = ((*{{_.*}}).1: std::option::Option<S>);
73-
// CHECK: [[c4]] = ((*{{_.*}}).2: &[f32]);
72+
// CHECK: [[b4]] = copy ((*{{_.*}}).1: std::option::Option<S>);
73+
// CHECK: [[c4]] = copy ((*{{_.*}}).2: &[f32]);
7474
let BigStruct(a4, b4, c4) = *BIG_STAT;
7575

7676
// We arbitrarily limit the size of synthetized values to 4 pointers.

Diff for: tests/mir-opt/dead-store-elimination/call_arg_copy.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ fn use_both(_: i32, _: i32) {}
1414
// EMIT_MIR call_arg_copy.move_simple.DeadStoreElimination-final.diff
1515
fn move_simple(x: i32) {
1616
// CHECK-LABEL: fn move_simple(
17-
// CHECK: = use_both(_1, move _1)
17+
// CHECK: = use_both(copy _1, move _1)
1818
use_both(x, x);
1919
}
2020

@@ -28,7 +28,7 @@ struct Packed {
2828
#[custom_mir(dialect = "analysis")]
2929
fn move_packed(packed: Packed) {
3030
// CHECK-LABEL: fn move_packed(
31-
// CHECK: = use_both(const 0_i32, (_1.1: i32))
31+
// CHECK: = use_both(const 0_i32, copy (_1.1: i32))
3232
mir! {
3333
{
3434
// We have a packed struct, verify that the copy is not turned into a move.

Diff for: tests/mir-opt/dest-prop/copy_propagation_arg.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,9 @@ fn arg_src(mut x: i32) -> i32 {
4141
// CHECK-LABEL: fn arg_src(
4242
// CHECK: debug x => [[x:_.*]];
4343
// CHECK: debug y => [[y:_.*]];
44-
// CHECK: [[y]] = [[x]]
44+
// CHECK: [[y]] = copy [[x]]
4545
// CHECK: [[x]] = const 123_i32;
46-
// CHECK-NOT: {{_.*}} = [[y]];
46+
// CHECK-NOT: {{_.*}} = copy [[y]];
4747
let y = x;
4848
x = 123; // Don't propagate this assignment to `y`
4949
y

0 commit comments

Comments
 (0)