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
@ -18,8 +18,8 @@ fn consts<const C: u32>() {
|
||||
})
|
||||
}
|
||||
|
||||
static S: i32 = 5;
|
||||
static mut T: i32 = 10;
|
||||
static S: i32 = 0x05050505;
|
||||
static mut T: i32 = 0x0a0a0a0a;
|
||||
// EMIT_MIR consts.statics.built.after.mir
|
||||
#[custom_mir(dialect = "built")]
|
||||
fn statics() {
|
||||
|
@ -19,9 +19,9 @@ fn statics() -> () {
|
||||
}
|
||||
|
||||
alloc2 (static: T, size: 4, align: 4) {
|
||||
0a 00 00 00 │ ....
|
||||
0a 0a 0a 0a │ ....
|
||||
}
|
||||
|
||||
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) {
|
||||
2a 00 00 00 │ *...
|
||||
42 42 42 42 │ BBBB
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
// unit-test
|
||||
// compile-flags: -O
|
||||
|
||||
static mut STATIC: u32 = 42;
|
||||
static mut STATIC: u32 = 0x42424242;
|
||||
|
||||
// EMIT_MIR mutable_variable_no_prop.main.ConstProp.diff
|
||||
fn main() {
|
||||
|
@ -26,7 +26,7 @@
|
||||
_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
|
||||
// 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>) }
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
_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
|
||||
// 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>) }
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
// EMIT_MIR issue_75439.foo.MatchBranchSimplification.diff
|
||||
// ignore-endian-big
|
||||
|
||||
use std::mem::transmute;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user