Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/newlib
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-11-16 20:52:21 +0300
committerCorinna Vinschen <corinna@vinschen.de>2010-11-16 20:52:21 +0300
commit2988dfa72b9f54d7c515c91ab646ee49aaad803f (patch)
tree25e36ceb8f7b6c870748c987142af7778f93f96c /newlib
parentf43dea8084f7ce989c17d2a00b643aac5b404325 (diff)
* libc/machine/i386/setjmp.S (longjmp): Per POSIX, return 1 if second
argument is 0.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/machine/i386/setjmp.S4
2 files changed, 9 insertions, 0 deletions
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 <mao@gnu.org>
+
+ * libc/machine/i386/setjmp.S (longjmp): Per POSIX, return 1 if second
+ argument is 0.
+
2010-11-16 Ralf Corsépius <ralf.corsepius@rtems.org>
* 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