We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 59baf4d + a3b1bc1 commit 520bd35Copy full SHA for 520bd35
src/test/ui/ptr_ops/issue-80309-safe.rs
@@ -0,0 +1,17 @@
1
+// run-pass
2
+// min-llvm-version: 13.0
3
+// compiler-flags: -O
4
+
5
+// Regression test for issue #80309
6
7
+pub fn zero(x: usize) -> usize {
8
+ std::ptr::null::<i8>().wrapping_add(x) as usize - x
9
+}
10
+pub fn qux(x: &[i8]) -> i8 {
11
+ x[zero(x.as_ptr() as usize)]
12
13
14
+fn main() {
15
+ let z = vec![42, 43];
16
+ println!("{}", qux(&z));
17
src/test/ui/ptr_ops/issue-80309.rs
@@ -0,0 +1,14 @@
+pub unsafe fn foo(x: *const i8) -> i8 {
+ *x.wrapping_sub(x as _).wrapping_add(x as _)
+ let x = 42;
+ println!("{}", unsafe { foo(&x) });
0 commit comments