From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: Christopher Faylor Cc: gdb-patches@sources.redhat.com Subject: Re: [RFC] sigsetjmp/siglongjmp on cygwin -- problem tracked down Date: Mon, 13 Aug 2001 19:40:00 -0000 Message-id: <3B788F78.8050005@cygnus.com> References: <3B785A0C.7000104@cygnus.com> <20010813193225.A10164@redhat.com> <20010813222037.A20589@redhat.com> X-SW-Source: 2001-08/msg00158.html > So, with the above buggy code, we'll eventually derefernce *catch_return[36] > when we should be dereferencing (*catch_return)[36]. > > I'll fix cygwin. How do we want to fix gdb? > > I could add a define in setjmp.h like this: > > #define WORKING_SETJMP 1 The BSD way of doing it was: #include #if BSD >= 199506 ... was this from the last bsd release ever ... #endf While it leads to pretty obscure tests (like the above) it did make it possible to test for anything constrained to a specific release. It may be easier to just tweek GDB so that: (NORETURN void) SIGLONGJMP (*catch_return, (int) reason); is written more robustly as: SIGLONGJMP ((*catch_return), ((int) reason)); If CYGWIN has this bug, chance has it that some other OS will as well. Hmm, Macro's are (er never mind :-). Andrew