]> granicus.if.org Git - gc/commitdiff
Add comment about sigaction sa_restorer field
authorIvan Maidanski <ivmai@mail.ru>
Wed, 17 Oct 2012 17:34:33 +0000 (21:34 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Wed, 17 Oct 2012 17:34:33 +0000 (21:34 +0400)
* os_dep.c (GC_find_limit_openbsd, GC_skip_hole_openbsd,
GC_set_and_save_fault_handler, GC_dirty_init): Add comment about
sigaction sa_restorer field initialization (some static code analysis
tools report about uninitialized field but according to Linux manual
it is obsolete and should not be used).
* pthread_stop_world.c (GC_stop_init): Likewise.

os_dep.c
pthread_stop_world.c

index 7fdfff93667896b32d8933139402a98964c1217f..02593c353143ca2c21440e78cebcec944ea7911a 100644 (file)
--- a/os_dep.c
+++ b/os_dep.c
@@ -559,6 +559,7 @@ GC_INNER char * GC_get_maps(void)
     act.sa_handler = GC_fault_handler_openbsd;
     sigemptyset(&act.sa_mask);
     act.sa_flags = SA_NODEFER | SA_RESTART;
+    /* act.sa_restorer is deprecated and should not be initialized. */
     sigaction(SIGSEGV, &act, &old_segv_act);
 
     if (sigsetjmp(GC_jmp_buf_openbsd, 1) == 0) {
@@ -596,6 +597,7 @@ GC_INNER char * GC_get_maps(void)
     act.sa_handler = GC_fault_handler_openbsd;
     sigemptyset(&act.sa_mask);
     act.sa_flags = SA_NODEFER | SA_RESTART;
+    /* act.sa_restorer is deprecated and should not be initialized. */
     sigaction(SIGSEGV, &act, &old_segv_act);
 
     firstpass = 1;
@@ -868,6 +870,7 @@ GC_INNER word GC_page_size = 0;
 #         endif
 
           (void) sigemptyset(&act.sa_mask);
+          /* act.sa_restorer is deprecated and should not be initialized. */
 #         ifdef GC_IRIX_THREADS
             /* Older versions have a bug related to retrieving and      */
             /* and setting a handler at the same time.                  */
@@ -3332,6 +3335,7 @@ GC_INNER void GC_remove_protection(struct hblk *h, word nblocks,
         ABORT("Page size not multiple of HBLKSIZE");
     }
 #   if !defined(MSWIN32) && !defined(MSWINCE)
+      /* act.sa_restorer is deprecated and should not be initialized. */
 #     if defined(GC_IRIX_THREADS)
         sigaction(SIGSEGV, 0, &oldact);
         sigaction(SIGSEGV, &act, 0);
@@ -4227,6 +4231,7 @@ GC_INNER void GC_dirty_init(void)
       sa.sa_handler = (SIG_HNDLR_PTR)GC_darwin_sigbus;
       sigemptyset(&sa.sa_mask);
       sa.sa_flags = SA_RESTART|SA_SIGINFO;
+      /* sa.sa_restorer is deprecated and should not be initialized. */
       if (sigaction(SIGBUS, &sa, &oldsa) < 0)
         ABORT("sigaction failed");
       if ((SIG_HNDLR_PTR)oldsa.sa_handler != SIG_DFL) {
index d9231b4ac244e2866c92809d24e872df3ed9a51a..11ebaea3c2566d39c3b7212084e639c47237a8b7 100644 (file)
@@ -887,12 +887,13 @@ GC_INNER void GC_stop_init(void)
 #   else
       act.sa_handler = GC_suspend_handler;
 #   endif
+    /* act.sa_restorer is deprecated and should not be initialized. */
     if (sigaction(GC_sig_suspend, &act, NULL) != 0) {
         ABORT("Cannot set SIG_SUSPEND handler");
     }
 
 #   ifdef SA_SIGINFO
-      act.sa_flags &= ~ SA_SIGINFO;
+      act.sa_flags &= ~SA_SIGINFO;
 #   endif
     act.sa_handler = GC_restart_handler;
     if (sigaction(GC_sig_thr_restart, &act, NULL) != 0) {