Cast the pointer assigned to ss_sp to char *.
authorJohn Baldwin <jhb@FreeBSD.org>
Tue, 19 Apr 2016 20:51:05 +0000 (13:51 -0700)
committerJohn Baldwin <jhb@FreeBSD.org>
Tue, 19 Apr 2016 22:41:56 +0000 (15:41 -0700)
FreeBSD versions older than 11.0 use char * as the type of ss_sp in
stack_t instead of the standards-defined void *.  C++ allows a char *
pointer to be converted to a void *, so it is safe to cast the return
value of xmalloc to char * if ss_sp is either a char * or void *.
Just always use the cast to char * since that is less ugly than having
to add a special case.

gdb/ChangeLog:

* main.c (setup_alternate_signal_stack): Cast to char *.

gdb/ChangeLog
gdb/main.c

index ca7c9de5f73df53605b1099fb10e250acf84a286..05052c9cd3c2ea46f554314839ff78adad27951b 100644 (file)
@@ -1,3 +1,7 @@
+2016-04-19  John Baldwin  <jhb@FreeBSD.org>
+
+       * main.c (setup_alternate_signal_stack): Cast to char *.
+
 2016-04-19  Doug Evans  <xdje42@gmail.com>
 
        * symmisc.c (dump_symtab_1, dump_symtab): Delete arg objfile.
index c149b708bf653488c5b15512346391dfa7aad222..2ce17136df92c9069cdc656046808993b423f642 100644 (file)
@@ -297,7 +297,9 @@ setup_alternate_signal_stack (void)
 #ifdef HAVE_SIGALTSTACK
   stack_t ss;
 
-  ss.ss_sp = xmalloc (SIGSTKSZ);
+  /* FreeBSD versions older than 11.0 use char * for ss_sp instead of
+     void *.  This cast works with both types.  */
+  ss.ss_sp = (char *) xmalloc (SIGSTKSZ);
   ss.ss_size = SIGSTKSZ;
   ss.ss_flags = 0;