From 9da8a55be97ef8158c80c97049a2d6dfb80ce0bf Mon Sep 17 00:00:00 2001 From: Tim Neumann Date: Thu, 20 Aug 2026 17:03:36 +0200 Subject: [PATCH] splat-fn-ptr-ptr-tuple.rs: add let to avoid UB --- tests/ui/splat/splat-fn-ptr-ptr-tuple.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/ui/splat/splat-fn-ptr-ptr-tuple.rs b/tests/ui/splat/splat-fn-ptr-ptr-tuple.rs index 6473abce4b750..6a108a1411a6b 100644 --- a/tests/ui/splat/splat-fn-ptr-ptr-tuple.rs +++ b/tests/ui/splat/splat-fn-ptr-ptr-tuple.rs @@ -66,25 +66,24 @@ fn main() { assert_eq!((*fn_pp)(1u32, 2i8), (2i8, 1u32)); // Now with *mut and non-terminal splat + let mut fn_p = splat_non_terminal_arg as fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32); let fn_pp: *mut fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32) - = ptr::from_mut( - &mut (splat_non_terminal_arg as fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32)) - ); + = ptr::from_mut(&mut fn_p); unsafe { assert_eq!((*fn_pp)(1, 2, 3.5), (2, 3.5, 1)); assert_eq!((*fn_pp)(1u32, 2i8, 3.5f64), (2i8, 3.5f64, 1u32)); } + let mut fn_p = splat_non_terminal_arg as _; let fn_pp: *mut fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32) - = ptr::from_mut(&mut (splat_non_terminal_arg as _)); + = ptr::from_mut(&mut fn_p); unsafe { assert_eq!((*fn_pp)(1, 2, 3.5), (2, 3.5, 1)); assert_eq!((*fn_pp)(1u32, 2i8, 3.5f64), (2i8, 3.5f64, 1u32)); } - let fn_pp = ptr::from_mut( - &mut (splat_non_terminal_arg as fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32)) - ); + let mut fn_p = splat_non_terminal_arg as fn(#[rustc_splat] (u32, i8), f64) -> (i8, f64, u32); + let fn_pp = ptr::from_mut(&mut fn_p); unsafe { assert_eq!((*fn_pp)(1, 2, 3.5), (2, 3.5, 1)); assert_eq!((*fn_pp)(1u32, 2i8, 3.5f64), (2i8, 3.5f64, 1u32));