Update mir-opt tests, add proper regression test

This commit is contained in:
George Bateman 2024-04-28 21:10:09 +01:00
parent ca79086c87
commit 2348eb271c
No known key found for this signature in database
GPG Key ID: C417AA9C4039EFCF
12 changed files with 202 additions and 518 deletions

View File

@ -4,33 +4,26 @@
fn concrete() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
let mut _10: usize;
let mut _12: usize;
let mut _14: usize;
scope 1 {
debug x => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug y => _3;
let _5: usize;
debug y => _2;
let _3: usize;
scope 3 {
debug z0 => _5;
let _7: usize;
debug z0 => _3;
let _4: usize;
scope 4 {
debug z1 => _7;
let _9: usize;
debug z1 => _4;
let _5: usize;
scope 5 {
debug eA0 => _9;
let _11: usize;
debug eA0 => _5;
let _6: usize;
scope 6 {
debug eA1 => _11;
let _13: usize;
debug eA1 => _6;
let _7: usize;
scope 7 {
debug eC => _13;
debug eC => _7;
}
}
}
@ -41,82 +34,33 @@
bb0: {
StorageLive(_1);
- _1 = OffsetOf(Alpha, [(0, 0)]);
+ _1 = const 4_usize;
StorageLive(_2);
- _2 = OffsetOf(Alpha, [(0, 0)]);
- _1 = must_use::<usize>(move _2) -> [return: bb1, unwind unreachable];
+ _2 = const 4_usize;
+ _1 = must_use::<usize>(const 4_usize) -> [return: bb1, unwind unreachable];
}
bb1: {
StorageDead(_2);
- _2 = OffsetOf(Alpha, [(0, 1)]);
+ _2 = const 0_usize;
StorageLive(_3);
- _3 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
+ _3 = const 2_usize;
StorageLive(_4);
- _4 = OffsetOf(Alpha, [(0, 1)]);
- _3 = must_use::<usize>(move _4) -> [return: bb2, unwind unreachable];
+ _4 = const 0_usize;
+ _3 = must_use::<usize>(const 0_usize) -> [return: bb2, unwind unreachable];
}
bb2: {
StorageDead(_4);
- _4 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
+ _4 = const 3_usize;
StorageLive(_5);
- _5 = OffsetOf(Epsilon, [(0, 0)]);
+ _5 = const 1_usize;
StorageLive(_6);
- _6 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind unreachable];
- _6 = OffsetOf(Epsilon, [(0, 1)]);
+ _6 = const 2_usize;
+ _5 = must_use::<usize>(const 2_usize) -> [return: bb3, unwind unreachable];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind unreachable];
+ _8 = const 3_usize;
+ _7 = must_use::<usize>(const 3_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
StorageDead(_8);
StorageLive(_9);
StorageLive(_10);
- _10 = OffsetOf(Epsilon, [(0, 0)]);
- _9 = must_use::<usize>(move _10) -> [return: bb5, unwind unreachable];
+ _10 = const 1_usize;
+ _9 = must_use::<usize>(const 1_usize) -> [return: bb5, unwind unreachable];
}
bb5: {
StorageDead(_10);
StorageLive(_11);
StorageLive(_12);
- _12 = OffsetOf(Epsilon, [(0, 1)]);
- _11 = must_use::<usize>(move _12) -> [return: bb6, unwind unreachable];
+ _12 = const 2_usize;
+ _11 = must_use::<usize>(const 2_usize) -> [return: bb6, unwind unreachable];
}
bb6: {
StorageDead(_12);
StorageLive(_13);
StorageLive(_14);
- _14 = OffsetOf(Epsilon, [(2, 0)]);
- _13 = must_use::<usize>(move _14) -> [return: bb7, unwind unreachable];
+ _14 = const 4_usize;
+ _13 = must_use::<usize>(const 4_usize) -> [return: bb7, unwind unreachable];
}
bb7: {
StorageDead(_14);
- _7 = OffsetOf(Epsilon, [(2, 0)]);
+ _7 = const 4_usize;
_0 = const ();
StorageDead(_13);
StorageDead(_11);
StorageDead(_9);
StorageDead(_7);
StorageDead(_6);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,33 +4,26 @@
fn concrete() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
let mut _10: usize;
let mut _12: usize;
let mut _14: usize;
scope 1 {
debug x => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug y => _3;
let _5: usize;
debug y => _2;
let _3: usize;
scope 3 {
debug z0 => _5;
let _7: usize;
debug z0 => _3;
let _4: usize;
scope 4 {
debug z1 => _7;
let _9: usize;
debug z1 => _4;
let _5: usize;
scope 5 {
debug eA0 => _9;
let _11: usize;
debug eA0 => _5;
let _6: usize;
scope 6 {
debug eA1 => _11;
let _13: usize;
debug eA1 => _6;
let _7: usize;
scope 7 {
debug eC => _13;
debug eC => _7;
}
}
}
@ -41,82 +34,33 @@
bb0: {
StorageLive(_1);
- _1 = OffsetOf(Alpha, [(0, 0)]);
+ _1 = const 4_usize;
StorageLive(_2);
- _2 = OffsetOf(Alpha, [(0, 0)]);
- _1 = must_use::<usize>(move _2) -> [return: bb1, unwind continue];
+ _2 = const 4_usize;
+ _1 = must_use::<usize>(const 4_usize) -> [return: bb1, unwind continue];
}
bb1: {
StorageDead(_2);
- _2 = OffsetOf(Alpha, [(0, 1)]);
+ _2 = const 0_usize;
StorageLive(_3);
- _3 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
+ _3 = const 2_usize;
StorageLive(_4);
- _4 = OffsetOf(Alpha, [(0, 1)]);
- _3 = must_use::<usize>(move _4) -> [return: bb2, unwind continue];
+ _4 = const 0_usize;
+ _3 = must_use::<usize>(const 0_usize) -> [return: bb2, unwind continue];
}
bb2: {
StorageDead(_4);
- _4 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
+ _4 = const 3_usize;
StorageLive(_5);
- _5 = OffsetOf(Epsilon, [(0, 0)]);
+ _5 = const 1_usize;
StorageLive(_6);
- _6 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind continue];
- _6 = OffsetOf(Epsilon, [(0, 1)]);
+ _6 = const 2_usize;
+ _5 = must_use::<usize>(const 2_usize) -> [return: bb3, unwind continue];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind continue];
+ _8 = const 3_usize;
+ _7 = must_use::<usize>(const 3_usize) -> [return: bb4, unwind continue];
}
bb4: {
StorageDead(_8);
StorageLive(_9);
StorageLive(_10);
- _10 = OffsetOf(Epsilon, [(0, 0)]);
- _9 = must_use::<usize>(move _10) -> [return: bb5, unwind continue];
+ _10 = const 1_usize;
+ _9 = must_use::<usize>(const 1_usize) -> [return: bb5, unwind continue];
}
bb5: {
StorageDead(_10);
StorageLive(_11);
StorageLive(_12);
- _12 = OffsetOf(Epsilon, [(0, 1)]);
- _11 = must_use::<usize>(move _12) -> [return: bb6, unwind continue];
+ _12 = const 2_usize;
+ _11 = must_use::<usize>(const 2_usize) -> [return: bb6, unwind continue];
}
bb6: {
StorageDead(_12);
StorageLive(_13);
StorageLive(_14);
- _14 = OffsetOf(Epsilon, [(2, 0)]);
- _13 = must_use::<usize>(move _14) -> [return: bb7, unwind continue];
+ _14 = const 4_usize;
+ _13 = must_use::<usize>(const 4_usize) -> [return: bb7, unwind continue];
}
bb7: {
StorageDead(_14);
- _7 = OffsetOf(Epsilon, [(2, 0)]);
+ _7 = const 4_usize;
_0 = const ();
StorageDead(_13);
StorageDead(_11);
StorageDead(_9);
StorageDead(_7);
StorageDead(_6);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,33 +4,26 @@
fn generic() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
let mut _10: usize;
let mut _12: usize;
let mut _14: usize;
scope 1 {
debug gx => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug gy => _3;
let _5: usize;
debug gy => _2;
let _3: usize;
scope 3 {
debug dx => _5;
let _7: usize;
debug dx => _3;
let _4: usize;
scope 4 {
debug dy => _7;
let _9: usize;
debug dy => _4;
let _5: usize;
scope 5 {
debug zA0 => _9;
let _11: usize;
debug zA0 => _5;
let _6: usize;
scope 6 {
debug zA1 => _11;
let _13: usize;
debug zA1 => _6;
let _7: usize;
scope 7 {
debug zB => _13;
debug zB => _7;
}
}
}
@ -41,72 +34,28 @@
bb0: {
StorageLive(_1);
_1 = OffsetOf(Gamma<T>, [(0, 0)]);
StorageLive(_2);
_2 = OffsetOf(Gamma<T>, [(0, 0)]);
_1 = must_use::<usize>(move _2) -> [return: bb1, unwind unreachable];
}
bb1: {
StorageDead(_2);
_2 = OffsetOf(Gamma<T>, [(0, 1)]);
StorageLive(_3);
- _3 = OffsetOf(Delta<T>, [(0, 1)]);
+ _3 = const 0_usize;
StorageLive(_4);
_4 = OffsetOf(Gamma<T>, [(0, 1)]);
_3 = must_use::<usize>(move _4) -> [return: bb2, unwind unreachable];
}
bb2: {
StorageDead(_4);
- _4 = OffsetOf(Delta<T>, [(0, 2)]);
+ _4 = const 2_usize;
StorageLive(_5);
_5 = OffsetOf(Zeta<T>, [(0, 0)]);
StorageLive(_6);
- _6 = OffsetOf(Delta<T>, [(0, 1)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind unreachable];
+ _6 = const 0_usize;
+ _5 = must_use::<usize>(const 0_usize) -> [return: bb3, unwind unreachable];
}
bb3: {
StorageDead(_6);
_6 = OffsetOf(Zeta<T>, [(0, 1)]);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Delta<T>, [(0, 2)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind unreachable];
+ _8 = const 2_usize;
+ _7 = must_use::<usize>(const 2_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
StorageDead(_8);
StorageLive(_9);
StorageLive(_10);
_10 = OffsetOf(Zeta<T>, [(0, 0)]);
_9 = must_use::<usize>(move _10) -> [return: bb5, unwind unreachable];
}
bb5: {
StorageDead(_10);
StorageLive(_11);
StorageLive(_12);
_12 = OffsetOf(Zeta<T>, [(0, 1)]);
_11 = must_use::<usize>(move _12) -> [return: bb6, unwind unreachable];
}
bb6: {
StorageDead(_12);
StorageLive(_13);
StorageLive(_14);
_14 = OffsetOf(Zeta<T>, [(1, 0)]);
_13 = must_use::<usize>(move _14) -> [return: bb7, unwind unreachable];
}
bb7: {
StorageDead(_14);
_7 = OffsetOf(Zeta<T>, [(1, 0)]);
_0 = const ();
StorageDead(_13);
StorageDead(_11);
StorageDead(_9);
StorageDead(_7);
StorageDead(_6);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,33 +4,26 @@
fn generic() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
let mut _10: usize;
let mut _12: usize;
let mut _14: usize;
scope 1 {
debug gx => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug gy => _3;
let _5: usize;
debug gy => _2;
let _3: usize;
scope 3 {
debug dx => _5;
let _7: usize;
debug dx => _3;
let _4: usize;
scope 4 {
debug dy => _7;
let _9: usize;
debug dy => _4;
let _5: usize;
scope 5 {
debug zA0 => _9;
let _11: usize;
debug zA0 => _5;
let _6: usize;
scope 6 {
debug zA1 => _11;
let _13: usize;
debug zA1 => _6;
let _7: usize;
scope 7 {
debug zB => _13;
debug zB => _7;
}
}
}
@ -41,72 +34,28 @@
bb0: {
StorageLive(_1);
_1 = OffsetOf(Gamma<T>, [(0, 0)]);
StorageLive(_2);
_2 = OffsetOf(Gamma<T>, [(0, 0)]);
_1 = must_use::<usize>(move _2) -> [return: bb1, unwind continue];
}
bb1: {
StorageDead(_2);
_2 = OffsetOf(Gamma<T>, [(0, 1)]);
StorageLive(_3);
- _3 = OffsetOf(Delta<T>, [(0, 1)]);
+ _3 = const 0_usize;
StorageLive(_4);
_4 = OffsetOf(Gamma<T>, [(0, 1)]);
_3 = must_use::<usize>(move _4) -> [return: bb2, unwind continue];
}
bb2: {
StorageDead(_4);
- _4 = OffsetOf(Delta<T>, [(0, 2)]);
+ _4 = const 2_usize;
StorageLive(_5);
_5 = OffsetOf(Zeta<T>, [(0, 0)]);
StorageLive(_6);
- _6 = OffsetOf(Delta<T>, [(0, 1)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind continue];
+ _6 = const 0_usize;
+ _5 = must_use::<usize>(const 0_usize) -> [return: bb3, unwind continue];
}
bb3: {
StorageDead(_6);
_6 = OffsetOf(Zeta<T>, [(0, 1)]);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Delta<T>, [(0, 2)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind continue];
+ _8 = const 2_usize;
+ _7 = must_use::<usize>(const 2_usize) -> [return: bb4, unwind continue];
}
bb4: {
StorageDead(_8);
StorageLive(_9);
StorageLive(_10);
_10 = OffsetOf(Zeta<T>, [(0, 0)]);
_9 = must_use::<usize>(move _10) -> [return: bb5, unwind continue];
}
bb5: {
StorageDead(_10);
StorageLive(_11);
StorageLive(_12);
_12 = OffsetOf(Zeta<T>, [(0, 1)]);
_11 = must_use::<usize>(move _12) -> [return: bb6, unwind continue];
}
bb6: {
StorageDead(_12);
StorageLive(_13);
StorageLive(_14);
_14 = OffsetOf(Zeta<T>, [(1, 0)]);
_13 = must_use::<usize>(move _14) -> [return: bb7, unwind continue];
}
bb7: {
StorageDead(_14);
_7 = OffsetOf(Zeta<T>, [(1, 0)]);
_0 = const ();
StorageDead(_13);
StorageDead(_11);
StorageDead(_9);
StorageDead(_7);
StorageDead(_6);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,21 +4,17 @@
fn concrete() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
scope 1 {
debug x => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug y => _3;
let _5: usize;
debug y => _2;
let _3: usize;
scope 3 {
debug z0 => _5;
let _7: usize;
debug z0 => _3;
let _4: usize;
scope 4 {
debug z1 => _7;
debug z1 => _4;
}
}
}
@ -26,49 +22,21 @@
bb0: {
StorageLive(_1);
- _1 = OffsetOf(Alpha, [(0, 0)]);
+ _1 = const 4_usize;
StorageLive(_2);
- _2 = OffsetOf(Alpha, [(0, 0)]);
- _1 = must_use::<usize>(move _2) -> [return: bb1, unwind unreachable];
+ _2 = const 4_usize;
+ _1 = must_use::<usize>(const 4_usize) -> [return: bb1, unwind unreachable];
}
bb1: {
StorageDead(_2);
- _2 = OffsetOf(Alpha, [(0, 1)]);
+ _2 = const 0_usize;
StorageLive(_3);
- _3 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
+ _3 = const 2_usize;
StorageLive(_4);
- _4 = OffsetOf(Alpha, [(0, 1)]);
- _3 = must_use::<usize>(move _4) -> [return: bb2, unwind unreachable];
+ _4 = const 0_usize;
+ _3 = must_use::<usize>(const 0_usize) -> [return: bb2, unwind unreachable];
}
bb2: {
StorageDead(_4);
StorageLive(_5);
StorageLive(_6);
- _6 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind unreachable];
+ _6 = const 2_usize;
+ _5 = must_use::<usize>(const 2_usize) -> [return: bb3, unwind unreachable];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind unreachable];
+ _8 = const 3_usize;
+ _7 = must_use::<usize>(const 3_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
StorageDead(_8);
- _4 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
+ _4 = const 3_usize;
_0 = const ();
StorageDead(_7);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,21 +4,17 @@
fn concrete() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
scope 1 {
debug x => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug y => _3;
let _5: usize;
debug y => _2;
let _3: usize;
scope 3 {
debug z0 => _5;
let _7: usize;
debug z0 => _3;
let _4: usize;
scope 4 {
debug z1 => _7;
debug z1 => _4;
}
}
}
@ -26,49 +22,21 @@
bb0: {
StorageLive(_1);
- _1 = OffsetOf(Alpha, [(0, 0)]);
+ _1 = const 4_usize;
StorageLive(_2);
- _2 = OffsetOf(Alpha, [(0, 0)]);
- _1 = must_use::<usize>(move _2) -> [return: bb1, unwind continue];
+ _2 = const 4_usize;
+ _1 = must_use::<usize>(const 4_usize) -> [return: bb1, unwind continue];
}
bb1: {
StorageDead(_2);
- _2 = OffsetOf(Alpha, [(0, 1)]);
+ _2 = const 0_usize;
StorageLive(_3);
- _3 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
+ _3 = const 2_usize;
StorageLive(_4);
- _4 = OffsetOf(Alpha, [(0, 1)]);
- _3 = must_use::<usize>(move _4) -> [return: bb2, unwind continue];
+ _4 = const 0_usize;
+ _3 = must_use::<usize>(const 0_usize) -> [return: bb2, unwind continue];
}
bb2: {
StorageDead(_4);
StorageLive(_5);
StorageLive(_6);
- _6 = OffsetOf(Alpha, [(0, 2), (0, 0)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind continue];
+ _6 = const 2_usize;
+ _5 = must_use::<usize>(const 2_usize) -> [return: bb3, unwind continue];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind continue];
+ _8 = const 3_usize;
+ _7 = must_use::<usize>(const 3_usize) -> [return: bb4, unwind continue];
}
bb4: {
StorageDead(_8);
- _4 = OffsetOf(Alpha, [(0, 2), (0, 1)]);
+ _4 = const 3_usize;
_0 = const ();
StorageDead(_7);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,21 +4,17 @@
fn generic() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
scope 1 {
debug gx => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug gy => _3;
let _5: usize;
debug gy => _2;
let _3: usize;
scope 3 {
debug dx => _5;
let _7: usize;
debug dx => _3;
let _4: usize;
scope 4 {
debug dy => _7;
debug dy => _4;
}
}
}
@ -26,45 +22,19 @@
bb0: {
StorageLive(_1);
_1 = OffsetOf(Gamma<T>, [(0, 0)]);
StorageLive(_2);
_2 = OffsetOf(Gamma<T>, [(0, 0)]);
_1 = must_use::<usize>(move _2) -> [return: bb1, unwind unreachable];
}
bb1: {
StorageDead(_2);
_2 = OffsetOf(Gamma<T>, [(0, 1)]);
StorageLive(_3);
- _3 = OffsetOf(Delta<T>, [(0, 1)]);
+ _3 = const 0_usize;
StorageLive(_4);
_4 = OffsetOf(Gamma<T>, [(0, 1)]);
_3 = must_use::<usize>(move _4) -> [return: bb2, unwind unreachable];
}
bb2: {
StorageDead(_4);
StorageLive(_5);
StorageLive(_6);
- _6 = OffsetOf(Delta<T>, [(0, 1)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind unreachable];
+ _6 = const 0_usize;
+ _5 = must_use::<usize>(const 0_usize) -> [return: bb3, unwind unreachable];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Delta<T>, [(0, 2)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind unreachable];
+ _8 = const 2_usize;
+ _7 = must_use::<usize>(const 2_usize) -> [return: bb4, unwind unreachable];
}
bb4: {
StorageDead(_8);
- _4 = OffsetOf(Delta<T>, [(0, 2)]);
+ _4 = const 2_usize;
_0 = const ();
StorageDead(_7);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -4,21 +4,17 @@
fn generic() -> () {
let mut _0: ();
let _1: usize;
let mut _2: usize;
let mut _4: usize;
let mut _6: usize;
let mut _8: usize;
scope 1 {
debug gx => _1;
let _3: usize;
let _2: usize;
scope 2 {
debug gy => _3;
let _5: usize;
debug gy => _2;
let _3: usize;
scope 3 {
debug dx => _5;
let _7: usize;
debug dx => _3;
let _4: usize;
scope 4 {
debug dy => _7;
debug dy => _4;
}
}
}
@ -26,45 +22,19 @@
bb0: {
StorageLive(_1);
_1 = OffsetOf(Gamma<T>, [(0, 0)]);
StorageLive(_2);
_2 = OffsetOf(Gamma<T>, [(0, 0)]);
_1 = must_use::<usize>(move _2) -> [return: bb1, unwind continue];
}
bb1: {
StorageDead(_2);
_2 = OffsetOf(Gamma<T>, [(0, 1)]);
StorageLive(_3);
- _3 = OffsetOf(Delta<T>, [(0, 1)]);
+ _3 = const 0_usize;
StorageLive(_4);
_4 = OffsetOf(Gamma<T>, [(0, 1)]);
_3 = must_use::<usize>(move _4) -> [return: bb2, unwind continue];
}
bb2: {
StorageDead(_4);
StorageLive(_5);
StorageLive(_6);
- _6 = OffsetOf(Delta<T>, [(0, 1)]);
- _5 = must_use::<usize>(move _6) -> [return: bb3, unwind continue];
+ _6 = const 0_usize;
+ _5 = must_use::<usize>(const 0_usize) -> [return: bb3, unwind continue];
}
bb3: {
StorageDead(_6);
StorageLive(_7);
StorageLive(_8);
- _8 = OffsetOf(Delta<T>, [(0, 2)]);
- _7 = must_use::<usize>(move _8) -> [return: bb4, unwind continue];
+ _8 = const 2_usize;
+ _7 = must_use::<usize>(const 2_usize) -> [return: bb4, unwind continue];
}
bb4: {
StorageDead(_8);
- _4 = OffsetOf(Delta<T>, [(0, 2)]);
+ _4 = const 2_usize;
_0 = const ();
StorageDead(_7);
StorageDead(_5);
StorageDead(_4);
StorageDead(_3);
StorageDead(_2);
StorageDead(_1);
return;
}

View File

@ -36,16 +36,16 @@ fn concrete() {
// CHECK: debug z0 => [[z0:_.*]];
// CHECK: debug z1 => [[z1:_.*]];
// CHECK: [[x]] = must_use::<usize>(const 4_usize) -> {{.*}}
// CHECK: [[x]] = const 4_usize
let x = offset_of!(Alpha, x);
// CHECK: [[y]] = must_use::<usize>(const 0_usize) -> {{.*}}
// CHECK: [[y]] = const 0_usize
let y = offset_of!(Alpha, y);
// CHECK: [[z0]] = must_use::<usize>(const 2_usize) -> {{.*}}
// CHECK: [[z0]] = const 2_usize
let z0 = offset_of!(Alpha, z.0);
// CHECK: [[z1]] = must_use::<usize>(const 3_usize) -> {{.*}}
// CHECK: [[z1]] = const 3_usize
let z1 = offset_of!(Alpha, z.1);
}
@ -58,16 +58,16 @@ fn generic<T>() {
// CHECK: debug dx => [[dx:_.*]];
// CHECK: debug dy => [[dy:_.*]];
// CHECK: [[gx]] = must_use::<usize>(move {{_.*}}) -> {{.*}}
// CHECK: [[gx]] = OffsetOf(Gamma<T>, [(0, 0)]);
let gx = offset_of!(Gamma<T>, x);
// CHECK: [[gy]] = must_use::<usize>(move {{_.*}}) -> {{.*}}
// CHECK: [[gy]] = OffsetOf(Gamma<T>, [(0, 1)]);
let gy = offset_of!(Gamma<T>, y);
// CHECK: [[dx]] = must_use::<usize>(const 0_usize) -> {{.*}}
// CHECK: [[dx]] = const 0_usize
let dx = offset_of!(Delta<T>, x);
// CHECK: [[dy]] = must_use::<usize>(const 2_usize) -> {{.*}}
// CHECK: [[dy]] = const 2_usize
let dy = offset_of!(Delta<T>, y);
}

View File

@ -23,9 +23,8 @@ impl S {
fn offs_in_c() -> usize {
offset_of!(C<Self>, w)
}
// Put offset_of in a slice - test #124478.
fn offs_in_c_colon() -> &'static [usize] {
&[offset_of!(C::<Self>, w)]
fn offs_in_c_colon() -> usize {
offset_of!(C::<Self>, w)
}
}

View File

@ -5,7 +5,7 @@ LL | offset_of!(Self, Self::v);
| ^^^^^^^
error[E0412]: cannot find type `S` in module `self`
--> $DIR/offset-of-self.rs:35:26
--> $DIR/offset-of-self.rs:34:26
|
LL | offset_of!(self::S, v);
| ^ not found in `self`
@ -21,7 +21,7 @@ LL + offset_of!(S, v);
|
error[E0411]: cannot find type `Self` in this scope
--> $DIR/offset-of-self.rs:52:16
--> $DIR/offset-of-self.rs:51:16
|
LL | fn main() {
| ---- `Self` not allowed in a function
@ -38,13 +38,13 @@ LL | offset_of!(S, Self);
= note: available fields are: `v`, `w`
error[E0616]: field `v` of struct `T` is private
--> $DIR/offset-of-self.rs:41:30
--> $DIR/offset-of-self.rs:40:30
|
LL | offset_of!(Self, v)
| ^ private field
error[E0609]: no field `self` on type `S`
--> $DIR/offset-of-self.rs:54:19
--> $DIR/offset-of-self.rs:53:19
|
LL | offset_of!(S, self);
| ^^^^
@ -52,7 +52,7 @@ LL | offset_of!(S, self);
= note: available fields are: `v`, `w`
error[E0609]: no field `self` on type `u8`
--> $DIR/offset-of-self.rs:55:21
--> $DIR/offset-of-self.rs:54:21
|
LL | offset_of!(S, v.self);
| ^^^^

View File

@ -0,0 +1,23 @@
//@ build-pass
//! Regression test #124478.
use std::mem::offset_of;
struct S {
v: u8,
w: u16,
}
impl S {
fn return_static_slice() -> &'static [usize] {
&[offset_of!(Self, v), offset_of!(Self, w)]
}
fn use_reference() -> usize {
let r = &offset_of!(Self, v);
*r * 6
}
}
fn main() {
}