We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 427eba2 commit 8e99d92Copy full SHA for 8e99d92
src/test/ui/ptr_ops/issue-80309-safe.rs
@@ -0,0 +1,16 @@
1
+// run-pass
2
+// compiler-flags: -O
3
+
4
+// Regression test for issue #80309
5
6
+pub fn zero(x: usize) -> usize {
7
+ std::ptr::null::<i8>().wrapping_add(x) as usize - x
8
+}
9
+pub fn qux(x: &[i8]) -> i8 {
10
+ x[zero(x.as_ptr() as usize)]
11
12
13
+fn main() {
14
+ let z = vec![42, 43];
15
+ println!("{}", qux(&z));
16
src/test/ui/ptr_ops/issue-80309.rs
@@ -0,0 +1,13 @@
+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