Skip to content

Commit 0cbfce0

Browse files
Fix new function_casts_as_integer lint errors in std and compiler crates
1 parent 009cd55 commit 0cbfce0

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

compiler/rustc_driver_impl/src/signal_handler.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,8 @@ pub(super) fn install() {
152152
libc::sigaltstack(&alt_stack, ptr::null_mut());
153153

154154
let mut sa: libc::sigaction = mem::zeroed();
155-
sa.sa_sigaction = print_stack_trace as libc::sighandler_t;
155+
sa.sa_sigaction =
156+
print_stack_trace as unsafe extern "C" fn(libc::c_int) as libc::sighandler_t;
156157
sa.sa_flags = libc::SA_NODEFER | libc::SA_RESETHAND | libc::SA_ONSTACK;
157158
libc::sigemptyset(&mut sa.sa_mask);
158159
for (signum, _signame) in KILL_SIGNALS {

library/std/src/backtrace.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,7 @@ impl Backtrace {
293293
if !Backtrace::enabled() {
294294
return Backtrace { inner: Inner::Disabled };
295295
}
296-
Backtrace::create(Backtrace::capture as usize)
296+
Backtrace::create(Backtrace::capture as fn() -> Backtrace as usize)
297297
}
298298

299299
/// Forcibly captures a full backtrace, regardless of environment variable
@@ -309,7 +309,7 @@ impl Backtrace {
309309
#[stable(feature = "backtrace", since = "1.65.0")]
310310
#[inline(never)] // want to make sure there's a frame here to remove
311311
pub fn force_capture() -> Backtrace {
312-
Backtrace::create(Backtrace::force_capture as usize)
312+
Backtrace::create(Backtrace::force_capture as fn() -> Backtrace as usize)
313313
}
314314

315315
/// Forcibly captures a disabled backtrace, regardless of environment

library/std/src/sys/pal/unix/stack_overflow.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,9 @@ mod imp {
169169
}
170170

171171
action.sa_flags = SA_SIGINFO | SA_ONSTACK;
172-
action.sa_sigaction = signal_handler as sighandler_t;
172+
action.sa_sigaction = signal_handler
173+
as unsafe extern "C" fn(i32, *mut libc::siginfo_t, *mut libc::c_void)
174+
as sighandler_t;
173175
// SAFETY: only overriding signals if the default is set
174176
unsafe { sigaction(signal, &action, ptr::null_mut()) };
175177
}

0 commit comments

Comments
 (0)