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

Reply via email to