Module Name: src
Committed By: rin
Date: Sat Jun 29 06:52:34 UTC 2024
Modified Files:
src/lib/libc/arch/vax/gen: __longjmp14.c _setjmp.S
Log Message:
vax: {,_}longjmp(3): Return 1 if `val` == 0
Found by tests/lib/libc/setjmp/t_setjmp:{,_}longjmp_zero.
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/lib/libc/arch/vax/gen/__longjmp14.c
cvs rdiff -u -r1.10 -r1.11 src/lib/libc/arch/vax/gen/_setjmp.S
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/arch/vax/gen/__longjmp14.c
diff -u src/lib/libc/arch/vax/gen/__longjmp14.c:1.5 src/lib/libc/arch/vax/gen/__longjmp14.c:1.6
--- src/lib/libc/arch/vax/gen/__longjmp14.c:1.5 Sun Jan 24 22:02:48 2016
+++ src/lib/libc/arch/vax/gen/__longjmp14.c Sat Jun 29 06:52:34 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: __longjmp14.c,v 1.5 2016/01/24 22:02:48 christos Exp $ */
+/* $NetBSD: __longjmp14.c,v 1.6 2024/06/29 06:52:34 rin Exp $ */
/*-
* Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -56,9 +56,9 @@ __longjmp14(jmp_buf env, int val)
if (jb->jb_sc.sc_sp == 0)
goto err;
- /* Ensure non-zero return value */
+ /* Return 1 if val is zero */
if (val == 0)
- val = -1;
+ val = 1;
/* Set _UC_SIGMASK and _UC_CPU */
uc.uc_flags = _UC_SIGMASK | _UC_CPU;
Index: src/lib/libc/arch/vax/gen/_setjmp.S
diff -u src/lib/libc/arch/vax/gen/_setjmp.S:1.10 src/lib/libc/arch/vax/gen/_setjmp.S:1.11
--- src/lib/libc/arch/vax/gen/_setjmp.S:1.10 Tue Jan 25 02:38:15 2011
+++ src/lib/libc/arch/vax/gen/_setjmp.S Sat Jun 29 06:52:34 2024
@@ -31,7 +31,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
/* .asciz "@(#)_setjmp.s 8.1 (Berkeley) 6/4/93" */
-RCSID("$NetBSD: _setjmp.S,v 1.10 2011/01/25 02:38:15 matt Exp $")
+RCSID("$NetBSD: _setjmp.S,v 1.11 2024/06/29 06:52:34 rin Exp $")
#endif /* LIBC_SCCS and not lint */
/*
@@ -68,7 +68,9 @@ END(_setjmp)
ENTRY(_longjmp, 0)
movl 8(%ap),%r0 # return(v)
- movl 4(%ap),%r1 # fetch buffer
+ jneq 1f
+ movl $1,%r0
+1: movl 4(%ap),%r1 # fetch buffer
tstl 12(%r1) # is fp null
beql botch
movq 44(%r1),%r6 # restore r6/r7