diff options
| author | bors <bors@rust-lang.org> | 2025-01-28 14:17:54 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-01-28 14:17:54 +0000 |
| commit | fdd1a3b02687817cea41f6bacae3d5fbed2b2cd0 (patch) | |
| tree | b4856af437b6e5e31008d52230bfe3e45bb164ad /src/tools | |
| parent | aa6f5ab18e67cb815f73e0d53d217bc54b0da924 (diff) | |
| parent | 9a192b254cb25dd2b75274ee0d0d831c3ddb8220 (diff) | |
Auto merge of #136185 - matthiaskrgr:rollup-zqzy6wb, r=matthiaskrgr
Rollup of 8 pull requests Successful merges: - #133151 (Trim extra whitespace in fn ptr suggestion span) - #133829 (Implement `AtomicT::update` & `AtomicT::try_update`) - #135367 (Enable `unreachable_pub` lint in `alloc`) - #135748 (Lower index bounds checking to `PtrMetadata`, this time with the right fake borrow semantics 😸) - #135805 (Add missing allocator safety in alloc crate) - #135886 (Document purpose of closure in from_fn.rs more clearly) - #135961 (Fix 2/4 tests skipped by opt-dist) - #136012 (Document powf and powi values that are always 1.0) r? `@ghost` `@rustbot` modify labels: rollup
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/miri/tests/pass/disjoint-array-accesses.rs | 35 | ||||
| -rw-r--r-- | src/tools/opt-dist/src/main.rs | 20 |
2 files changed, 42 insertions, 13 deletions
diff --git a/src/tools/miri/tests/pass/disjoint-array-accesses.rs b/src/tools/miri/tests/pass/disjoint-array-accesses.rs new file mode 100644 index 00000000000..50d0ea52ad4 --- /dev/null +++ b/src/tools/miri/tests/pass/disjoint-array-accesses.rs @@ -0,0 +1,35 @@ +// This is a regression test for issue #135671 where a MIR refactor about arrays and their lengths +// unexpectedly caused borrowck errors for disjoint borrows of array elements, for which we had no +// tests. This is a collection of a few code samples from that issue. + +//@revisions: stack tree +//@[tree]compile-flags: -Zmiri-tree-borrows + +struct Test { + a: i32, + b: i32, +} + +fn one() { + let inputs: &mut [_] = &mut [Test { a: 0, b: 0 }]; + let a = &mut inputs[0].a; + let b = &mut inputs[0].b; + + *a = 0; + *b = 1; +} + +fn two() { + let slice = &mut [(0, 0)][..]; + std::mem::swap(&mut slice[0].0, &mut slice[0].1); +} + +fn three(a: &mut [(i32, i32)], i: usize, j: usize) -> (&mut i32, &mut i32) { + (&mut a[i].0, &mut a[j].1) +} + +fn main() { + one(); + two(); + three(&mut [(1, 2), (3, 4)], 0, 1); +} diff --git a/src/tools/opt-dist/src/main.rs b/src/tools/opt-dist/src/main.rs index aa05b5f0e76..04de3493ea2 100644 --- a/src/tools/opt-dist/src/main.rs +++ b/src/tools/opt-dist/src/main.rs @@ -148,18 +148,15 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)> let is_aarch64 = target_triple.starts_with("aarch64"); - let mut skip_tests = vec![ - // Fails because of linker errors, as of June 2023. - "tests/ui/process/nofile-limit.rs".to_string(), - ]; - - if is_aarch64 { - skip_tests.extend([ + let skip_tests = if is_aarch64 { + vec![ // Those tests fail only inside of Docker on aarch64, as of December 2024 "tests/ui/consts/promoted_running_out_of_memory_issue-130687.rs".to_string(), "tests/ui/consts/large_const_alloc.rs".to_string(), - ]); - } + ] + } else { + vec![] + }; let checkout_dir = Utf8PathBuf::from("/checkout"); let env = EnvironmentBuilder::default() @@ -191,10 +188,7 @@ fn create_environment(args: Args) -> anyhow::Result<(Environment, Vec<String>)> .build_dir(checkout_dir) .shared_llvm(false) .use_bolt(false) - .skipped_tests(vec![ - // Fails as of June 2023. - "tests\\codegen\\vec-shrink-panik.rs".to_string(), - ]) + .skipped_tests(vec![]) .build()?; (env, shared.build_args) |
