diff options
| author | bors <bors@rust-lang.org> | 2025-07-06 01:03:18 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2025-07-06 01:03:18 +0000 |
| commit | 75d5834a6c571cb0455acb5128ad51118fcbf2be (patch) | |
| tree | 86b15d65ffcc1781204bdc7684f927e08ed32677 | |
| parent | 5adb489a8034f7b56b29f3b28af0813c866f679c (diff) | |
| parent | 1339b905505917725c3f1cd1bb52d7ff4f5eea9a (diff) | |
| download | rust-75d5834a6c571cb0455acb5128ad51118fcbf2be.tar.gz rust-75d5834a6c571cb0455acb5128ad51118fcbf2be.zip | |
Auto merge of #143126 - dianqk:update-llvm, r=nikic
Update LLVM submodule Fixes rust-lang/rust#140686, fixes rust-lang/rust#141913, fixes rust-lang/rust#142752, fixes rust-lang/rust#143399.
| m--------- | src/llvm-project | 0 | ||||
| -rw-r--r-- | tests/ui/darwin-ld64.rs | 24 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/llvm-project b/src/llvm-project -Subproject ed6566573eb21b00a3f87815e14ff766fd56ef4 +Subproject 9b1bf4cf041c1c1fe62cf03891ac90431615e78 diff --git a/tests/ui/darwin-ld64.rs b/tests/ui/darwin-ld64.rs new file mode 100644 index 00000000000..75acc07a002 --- /dev/null +++ b/tests/ui/darwin-ld64.rs @@ -0,0 +1,24 @@ +//@ compile-flags: -Copt-level=3 -Ccodegen-units=256 -Clink-arg=-ld_classic +//@ run-pass +//@ only-x86_64-apple-darwin + +// This is a regression test for https://github.com/rust-lang/rust/issues/140686. +// Although this is a ld64(ld-classic) bug, we still need to support it +// due to cross-compilation and support for older Xcode. + +fn main() { + let dst: Vec<u8> = Vec::new(); + let len = broken_func(std::hint::black_box(2), dst); + assert_eq!(len, 8); +} + +#[inline(never)] +pub fn broken_func(version: usize, mut dst: Vec<u8>) -> usize { + match version { + 1 => dst.extend_from_slice(b"aaaaaaaa"), + 2 => dst.extend_from_slice(b"bbbbbbbb"), + 3 => dst.extend_from_slice(b"bbbbbbbb"), + _ => panic!(), + } + dst.len() +} |
