setjmp.h: add struct tag for sigjmp_buf (GCC C++ compatibility)
authorrofl0r <retnyg@gmx.net>
Fri, 4 Jan 2013 17:47:17 +0000 (18:47 +0100)
committerrofl0r <retnyg@gmx.net>
Fri, 4 Jan 2013 19:36:34 +0000 (20:36 +0100)
the anonymous struct typedef with array notation breaks with
GCC in C++ mode:

error: non-local function 'static<anonymous struct>
(& boost::signal_handler::jump_buffer())[1]' uses anonymous type

this is a known GCC issue, as search results for that error msg
suggest.

since this is hard to work around in the calling C++ code, a
fix in musl is preferable.

include/setjmp.h

index abc7423..5456d8f 100644 (file)
@@ -13,7 +13,7 @@ extern "C" {
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
  || defined(_BSD_SOURCE)
-typedef struct {
+typedef struct __sigjmp_buf {
        jmp_buf __jb;
        unsigned long __fl;
        unsigned long __ss[128/sizeof(long)];