From 2988dfa72b9f54d7c515c91ab646ee49aaad803f Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Tue, 16 Nov 2010 17:52:21 +0000 Subject: * libc/machine/i386/setjmp.S (longjmp): Per POSIX, return 1 if second argument is 0. --- newlib/ChangeLog | 5 +++++ newlib/libc/machine/i386/setjmp.S | 4 ++++ 2 files changed, 9 insertions(+) (limited to 'newlib') diff --git a/newlib/ChangeLog b/newlib/ChangeLog index 54fbfa8cd..32d0d2e32 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2010-11-16 Andrew Makhorin + + * libc/machine/i386/setjmp.S (longjmp): Per POSIX, return 1 if second + argument is 0. + 2010-11-16 Ralf Corsépius * libc/include/sys/types.h: Add _mode_t for __rtems__. diff --git a/newlib/libc/machine/i386/setjmp.S b/newlib/libc/machine/i386/setjmp.S index 7cabba4d0..9ecef385b 100644 --- a/newlib/libc/machine/i386/setjmp.S +++ b/newlib/libc/machine/i386/setjmp.S @@ -67,6 +67,10 @@ SYM (longjmp): movl 8(ebp),edi /* get jmp_buf */ movl 12(ebp),eax /* store retval in j->eax */ + testl eax,eax + jne 0f + incl eax +0: movl eax,0(edi) movl 24(edi),ebp -- cgit v1.2.3