diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2022-02-06 04:13:33 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-06 04:13:33 +0100 |
| commit | 520bd359a38a266f7823112b27cade0b470a4815 (patch) | |
| tree | c3dfad32735a867bfba546cc3783096ce2158d1f | |
| parent | 59baf4db0f73e60702d1b4b101a0789e63ddce8f (diff) | |
| parent | a3b1bc13882197900f4a6858c465f67ffb75f1fe (diff) | |
| download | rust-520bd359a38a266f7823112b27cade0b470a4815.tar.gz rust-520bd359a38a266f7823112b27cade0b470a4815.zip | |
Rollup merge of #93649 - WaffleLapkin:regression_test_80309, r=oli-obk
Add regression tests for issue 80309 Closes #80309 😝 I'm not sure where to put the tests, is `ui/issues` the right place for this kind of tests?
| -rw-r--r-- | src/test/ui/ptr_ops/issue-80309-safe.rs | 17 | ||||
| -rw-r--r-- | src/test/ui/ptr_ops/issue-80309.rs | 14 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/ptr_ops/issue-80309-safe.rs b/src/test/ui/ptr_ops/issue-80309-safe.rs new file mode 100644 index 00000000000..ca3778aab2d --- /dev/null +++ b/src/test/ui/ptr_ops/issue-80309-safe.rs @@ -0,0 +1,17 @@ +// run-pass +// min-llvm-version: 13.0 +// compiler-flags: -O + +// Regression test for issue #80309 + +pub fn zero(x: usize) -> usize { + std::ptr::null::<i8>().wrapping_add(x) as usize - x +} +pub fn qux(x: &[i8]) -> i8 { + x[zero(x.as_ptr() as usize)] +} + +fn main() { + let z = vec![42, 43]; + println!("{}", qux(&z)); +} diff --git a/src/test/ui/ptr_ops/issue-80309.rs b/src/test/ui/ptr_ops/issue-80309.rs new file mode 100644 index 00000000000..bbec1012082 --- /dev/null +++ b/src/test/ui/ptr_ops/issue-80309.rs @@ -0,0 +1,14 @@ +// run-pass +// min-llvm-version: 13.0 +// compiler-flags: -O + +// Regression test for issue #80309 + +pub unsafe fn foo(x: *const i8) -> i8 { + *x.wrapping_sub(x as _).wrapping_add(x as _) +} + +fn main() { + let x = 42; + println!("{}", unsafe { foo(&x) }); +} |
