sanitizer_common: fix SIG_DFL warning
authorDmitry Vyukov <dvyukov@google.com>
Mon, 10 May 2021 11:43:20 +0000 (13:43 +0200)
committerDmitry Vyukov <dvyukov@google.com>
Wed, 12 May 2021 05:23:20 +0000 (07:23 +0200)
Currently we have:

sanitizer_posix_libcdep.cpp:146:27: warning: cast between incompatible
  function types from ‘__sighandler_t’ {aka ‘void (*)(int)’} to ‘sa_sigaction_t’
  146 |     sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL;

We don't set SA_SIGINFO, so we need to assign to sa_handler.
And SIG_DFL is meant for sa_handler, so this gets rid of both
compiler warning, type cast and potential runtime misbehavior.

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D102162

compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cpp

index 7ff48c3..d1d8e50 100644 (file)
@@ -143,7 +143,7 @@ void Abort() {
   if (GetHandleSignalMode(SIGABRT) != kHandleSignalNo) {
     struct sigaction sigact;
     internal_memset(&sigact, 0, sizeof(sigact));
-    sigact.sa_sigaction = (sa_sigaction_t)SIG_DFL;
+    sigact.sa_handler = SIG_DFL;
     internal_sigaction(SIGABRT, &sigact, nullptr);
   }
 #endif