This is the mail archive of the cygwin mailing list for the Cygwin project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
$ uname -a
CYGWIN_NT-5.1 fordpc 1.5.12(0.116/4/2) 2004-10-11 16:50 i686 unknown
unknown Cygwin
$ cat longjmp_signal.c
#include <setjmp.h>
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
static jmp_buf env;
void
handler(int sig)
{
longjmp(env, 1);
puts("longjmp failed");
exit(-2);
}
int
main(void)
{
int i;
for (i = 0; i < 2; i++)
{
volatile char *p = NULL;
signal(SIGSEGV, handler);
if (setjmp(env) == 0)
{
*p;
puts("SEGV failed");
exit(-1);
}
else
printf("Partial success: %d\n", i);
}
puts("PASS");
return 0;
}
$ gcc -g -O2 longjmp_signal.c -o longjmp_signal.exe
$ ./longjmp_signal.exe
Partial success: 0
$ echo $?
5
I would expect additional output:
Partial success: 1
PASS
and a 0 return status?
Thanks.
--
Brian Ford
Senior Realtime Software Engineer
VITAL - Visual Simulation Systems
FlightSafety International
the best safety device in any aircraft is a well-trained pilot...Attachment:
cygcheck.out
Description: Text document
Attachment:
longjmp_signal.c
Description: Text document
-- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |