diff options
| author | bors <bors@rust-lang.org> | 2021-03-12 14:16:01 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2021-03-12 14:16:01 +0000 |
| commit | 215ebc364e790f6727754e5b83bf47c3696bade7 (patch) | |
| tree | 529732b982db3676a1684c05ad8b20f7a0ca26b0 | |
| parent | 338647db73028aca0198f5330b15bf4bb769a1ea (diff) | |
| parent | ef269ac4fcf62e9fa39f4d6d28ccae6eeebda4c4 (diff) | |
| download | rust-215ebc364e790f6727754e5b83bf47c3696bade7.tar.gz rust-215ebc364e790f6727754e5b83bf47c3696bade7.zip | |
Auto merge of #83030 - nikic:update-llvm, r=nagisa
Update llvm-project submodule Fixes #82833. Fixes #82859. Probably also `fixes` #83025. This also merges in the current upstream 12.x branch. r? `@nagisa`
| m--------- | src/llvm-project | 0 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-82833-slice-miscompile.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-82859-slice-miscompile.rs | 19 |
3 files changed, 36 insertions, 0 deletions
diff --git a/src/llvm-project b/src/llvm-project -Subproject 5f958e150d377e608d2f1f208b86110218d5da3 +Subproject 62a1ddde22c267249eda72184520a21ad2052f0 diff --git a/src/test/ui/issues/issue-82833-slice-miscompile.rs b/src/test/ui/issues/issue-82833-slice-miscompile.rs new file mode 100644 index 00000000000..b14e5f6fb12 --- /dev/null +++ b/src/test/ui/issues/issue-82833-slice-miscompile.rs @@ -0,0 +1,17 @@ +// run-pass +// compile-flags: -Ccodegen-units=1 -Cinline-threshold=0 -Clink-dead-code -Copt-level=0 -Cdebuginfo=2 +// ignore-tidy-linelength + +// Make sure LLVM does not miscompile this. + +fn make_string(ch: char) -> String { + let mut bytes = [0u8; 4]; + ch.encode_utf8(&mut bytes).into() +} + +fn main() { + let ch = '😃'; + dbg!(ch); + let string = make_string(ch); + dbg!(string); +} diff --git a/src/test/ui/issues/issue-82859-slice-miscompile.rs b/src/test/ui/issues/issue-82859-slice-miscompile.rs new file mode 100644 index 00000000000..b64eb499071 --- /dev/null +++ b/src/test/ui/issues/issue-82859-slice-miscompile.rs @@ -0,0 +1,19 @@ +// run-pass +// compile-flags: -Copt-level=0 -Cdebuginfo=2 + +// Make sure LLVM does not miscompile this. + +fn indirect_get_slice() -> &'static [usize] { + &[] +} + +#[inline(always)] +fn get_slice() -> &'static [usize] { + let ret = indirect_get_slice(); + ret +} + +fn main() { + let output = get_slice().len(); + assert_eq!(output, 0); +} |
