http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56018
Jakub Jelinek <jakub at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED CC| |jakub at gcc dot gnu.org Resolution| |INVALID --- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-17 11:14:13 UTC --- This has nothing to do with gcc, the header file has: union { /* Used if SA_SIGINFO is not set. */ __sighandler_t sa_handler; /* Used if SA_SIGINFO is set. */ void (*sa_sigaction) (int, siginfo_t *, void *); } __sigaction_handler; # define sa_handler __sigaction_handler.sa_handler # define sa_sigaction __sigaction_handler.sa_sigaction And, using __sigaction_handler.sa_handler in your source file is wrong, __sigaction_handler is reserved for the implementation (and so is sa_handler in POSIX if you include signal.h header).