Rollup merge of #106046 - uweigand:s390x-test-bigendian-mir, r=Mark-Simulacrum
Fix mir-opt tests for big-endian platforms The test cases src/test/mir-opt/building/custom/consts.rs and src/test/mir-opt/const_prop/mutable_variable_no_prop.rs are currently failing on big-endian platforms as the binary encoding of some constants is hard-coded in the MIR test files. Fix this by choosing constant values that have the same encoding on big- and little-endian platforms. The test case src/test/mir-opt/issues/issue_75439.rs is failing as well, but since the purpose of the test is to validate handling of big-endian integer encodings on a little-endian platform, it does not make much sense to run it on big-endian platforms in the first place - we can just ignore it there. Fixed part of https://github.com/rust-lang/rust/issues/105383.
This commit is contained in:
commit
47fa7faf76
6 changed files with 9 additions and 8 deletions
|
@ -18,8 +18,8 @@ fn consts<const C: u32>() {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
static S: i32 = 5;
|
static S: i32 = 0x05050505;
|
||||||
static mut T: i32 = 10;
|
static mut T: i32 = 0x0a0a0a0a;
|
||||||
// EMIT_MIR consts.statics.built.after.mir
|
// EMIT_MIR consts.statics.built.after.mir
|
||||||
#[custom_mir(dialect = "built")]
|
#[custom_mir(dialect = "built")]
|
||||||
fn statics() {
|
fn statics() {
|
||||||
|
|
|
@ -19,9 +19,9 @@ fn statics() -> () {
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc2 (static: T, size: 4, align: 4) {
|
alloc2 (static: T, size: 4, align: 4) {
|
||||||
0a 00 00 00 │ ....
|
0a 0a 0a 0a │ ....
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc1 (static: S, size: 4, align: 4) {
|
alloc1 (static: S, size: 4, align: 4) {
|
||||||
05 00 00 00 │ ....
|
05 05 05 05 │ ....
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,6 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
alloc1 (static: STATIC, size: 4, align: 4) {
|
alloc1 (static: STATIC, size: 4, align: 4) {
|
||||||
2a 00 00 00 │ *...
|
42 42 42 42 │ BBBB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// unit-test
|
// unit-test
|
||||||
// compile-flags: -O
|
// compile-flags: -O
|
||||||
|
|
||||||
static mut STATIC: u32 = 42;
|
static mut STATIC: u32 = 0x42424242;
|
||||||
|
|
||||||
// EMIT_MIR mutable_variable_no_prop.main.ConstProp.diff
|
// EMIT_MIR mutable_variable_no_prop.main.ConstProp.diff
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
_3 = _1; // scope 2 at $DIR/issue_75439.rs:+2:47: +2:52
|
_3 = _1; // scope 2 at $DIR/issue_75439.rs:+2:47: +2:52
|
||||||
_2 = transmute::<[u8; 16], [u32; 4]>(move _3) -> bb1; // scope 2 at $DIR/issue_75439.rs:+2:37: +2:53
|
_2 = transmute::<[u8; 16], [u32; 4]>(move _3) -> bb1; // scope 2 at $DIR/issue_75439.rs:+2:37: +2:53
|
||||||
// mir::Constant
|
// mir::Constant
|
||||||
// + span: $DIR/issue_75439.rs:7:37: 7:46
|
// + span: $DIR/issue_75439.rs:8:37: 8:46
|
||||||
// + literal: Const { ty: unsafe extern "rust-intrinsic" fn([u8; 16]) -> [u32; 4] {transmute::<[u8; 16], [u32; 4]>}, val: Value(<ZST>) }
|
// + literal: Const { ty: unsafe extern "rust-intrinsic" fn([u8; 16]) -> [u32; 4] {transmute::<[u8; 16], [u32; 4]>}, val: Value(<ZST>) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
_6 = _4; // scope 4 at $DIR/issue_75439.rs:+5:33: +5:35
|
_6 = _4; // scope 4 at $DIR/issue_75439.rs:+5:33: +5:35
|
||||||
_5 = transmute::<u32, [u8; 4]>(move _6) -> bb7; // scope 4 at $DIR/issue_75439.rs:+5:23: +5:36
|
_5 = transmute::<u32, [u8; 4]>(move _6) -> bb7; // scope 4 at $DIR/issue_75439.rs:+5:23: +5:36
|
||||||
// mir::Constant
|
// mir::Constant
|
||||||
// + span: $DIR/issue_75439.rs:10:23: 10:32
|
// + span: $DIR/issue_75439.rs:11:23: 11:32
|
||||||
// + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u32) -> [u8; 4] {transmute::<u32, [u8; 4]>}, val: Value(<ZST>) }
|
// + literal: Const { ty: unsafe extern "rust-intrinsic" fn(u32) -> [u8; 4] {transmute::<u32, [u8; 4]>}, val: Value(<ZST>) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
// EMIT_MIR issue_75439.foo.MatchBranchSimplification.diff
|
// EMIT_MIR issue_75439.foo.MatchBranchSimplification.diff
|
||||||
|
// ignore-endian-big
|
||||||
|
|
||||||
use std::mem::transmute;
|
use std::mem::transmute;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue