Module Name:    src
Committed By:   christos
Date:           Sat Aug 17 20:08:13 UTC 2024

Modified Files:
        src/lib/libc/locale: c16rtomb.c c8rtomb.c mbrtoc16.c mbrtoc32.c
            mbrtoc8.c

Log Message:
pass lint, XXX see lint bug.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/lib/libc/locale/c16rtomb.c
cvs rdiff -u -r1.2 -r1.3 src/lib/libc/locale/c8rtomb.c \
    src/lib/libc/locale/mbrtoc8.c
cvs rdiff -u -r1.4 -r1.5 src/lib/libc/locale/mbrtoc16.c \
    src/lib/libc/locale/mbrtoc32.c

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/locale/c16rtomb.c
diff -u src/lib/libc/locale/c16rtomb.c:1.3 src/lib/libc/locale/c16rtomb.c:1.4
--- src/lib/libc/locale/c16rtomb.c:1.3	Thu Aug 15 18:22:35 2024
+++ src/lib/libc/locale/c16rtomb.c	Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: c16rtomb.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $	*/
+/*	$NetBSD: c16rtomb.c,v 1.4 2024/08/17 20:08:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: c16rtomb.c,v 1.3 2024/08/15 22:22:35 riastradh Exp $");
+__RCSID("$NetBSD: c16rtomb.c,v 1.4 2024/08/17 20:08:13 christos Exp $");
 
 #include "namespace.h"
 
@@ -124,7 +124,7 @@ c16rtomb(char *restrict s, char16_t c16,
 	/*
 	 * Open the private UTF-16 decoding state.
 	 */
-	S = (struct c16rtombstate *)ps;
+	S = (struct c16rtombstate *)(void *)ps;
 
 #if 0
 	/*
@@ -163,8 +163,9 @@ c16rtomb(char *restrict s, char16_t c16,
 		}
 		const char16_t w1 = S->surrogate;
 		const char16_t w2 = c16;
-		c32 = __SHIFTIN(__SHIFTOUT(w1, __BITS(9,0)), __BITS(19,10)) |
-		    __SHIFTIN(__SHIFTOUT(w2, __BITS(9,0)), __BITS(9,0));
+		c32 = (char32_t)(
+		    __SHIFTIN(__SHIFTOUT(w1, __BITS(9,0)), __BITS(19,10)) |
+		    __SHIFTIN(__SHIFTOUT(w2, __BITS(9,0)), __BITS(9,0)));
 		c32 += 0x10000;
 		S->surrogate = 0;
 	} else if (c16 >= 0xd800 && c16 <= 0xdbff) { /* 2. high surrogate */

Index: src/lib/libc/locale/c8rtomb.c
diff -u src/lib/libc/locale/c8rtomb.c:1.2 src/lib/libc/locale/c8rtomb.c:1.3
--- src/lib/libc/locale/c8rtomb.c:1.2	Thu Aug 15 18:23:17 2024
+++ src/lib/libc/locale/c8rtomb.c	Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: c8rtomb.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $	*/
+/*	$NetBSD: c8rtomb.c,v 1.3 2024/08/17 20:08:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -55,7 +55,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: c8rtomb.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $");
+__RCSID("$NetBSD: c8rtomb.c,v 1.3 2024/08/17 20:08:13 christos Exp $");
 
 #include "namespace.h"
 
@@ -158,7 +158,7 @@ c8rtomb(char *restrict s, char8_t c8, mb
 	/*
 	 * Open the private UTF-8 decoding state.
 	 */
-	S = (struct c8rtombstate *)ps;
+	S = (struct c8rtombstate *)(void *)ps;
 
 #if 0
 	/*
@@ -181,8 +181,8 @@ c8rtomb(char *restrict s, char8_t c8, mb
 	 * Get the current state and buffer.
 	 */
 	__CTASSERT(UTF8_ACCEPT == 0); /* initial conversion state */
-	state = __SHIFTOUT(S->state_c32, __BITS(31,24));
-	c32 = __SHIFTOUT(S->state_c32, __BITS(23,0));
+	state = (utf8_state_t)__SHIFTOUT(S->state_c32, __BITS(31,24));
+	c32 = (char32_t)__SHIFTOUT(S->state_c32, __BITS(23,0));
 
 	/*
 	 * Feed the byte into the state machine to update the state.
@@ -200,15 +200,19 @@ c8rtomb(char *restrict s, char8_t c8, mb
 		 * Valid UTF-8 so far but incomplete.  Update state and
 		 * output nothing.
 		 */
-		S->state_c32 = __SHIFTIN(state, __BITS(31,24)) |
-		    __SHIFTIN(c32, __BITS(23,0));
+		S->state_c32 = (char32_t)(
+		    __SHIFTIN(state, __BITS(31,24)) |
+		    __SHIFTIN(c32, __BITS(23,0)));
 		return 0;
 	case UTF8_ACCEPT:
 		/*
 		 * We have a scalar value.  Clear the state and output
 		 * the scalar value.
 		 */
+#ifndef __lint__
+		// XXX: lint does not grok struct decl after case label!
 		__CTASSERT(UTF8_ACCEPT == 0);
+#endif
 		S->state_c32 = 0;
 		return c32rtomb(s, c32, &S->mbs);
 	}
Index: src/lib/libc/locale/mbrtoc8.c
diff -u src/lib/libc/locale/mbrtoc8.c:1.2 src/lib/libc/locale/mbrtoc8.c:1.3
--- src/lib/libc/locale/mbrtoc8.c:1.2	Thu Aug 15 18:23:17 2024
+++ src/lib/libc/locale/mbrtoc8.c	Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mbrtoc8.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $	*/
+/*	$NetBSD: mbrtoc8.c,v 1.3 2024/08/17 20:08:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -72,7 +72,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc8.c,v 1.2 2024/08/15 22:23:17 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc8.c,v 1.3 2024/08/17 20:08:13 christos Exp $");
 
 #include "namespace.h"
 
@@ -133,7 +133,7 @@ mbrtoc8(char8_t *restrict pc8, const cha
 	/*
 	 * Get the private conversion state.
 	 */
-	S = (struct mbrtoc8state *)ps;
+	S = (struct mbrtoc8state *)(void *)ps;
 
 	/*
 	 * If there are pending trailing bytes, yield them and return
@@ -181,23 +181,32 @@ mbrtoc8(char8_t *restrict pc8, const cha
 		break;
 	case 0x0080 ... 0x07ff:
 		if (pc8)
-			*pc8 = 0xc0 | __SHIFTOUT(c32, __BITS(10,6));
-		S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+			*pc8 = (char8_t)(
+			    0xc0 | __SHIFTOUT(c32, __BITS(10,6)));
+		S->buf[2] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(5,0)));
 		S->nleft = 1;
 		break;
 	case 0x0800 ... 0xffff:
 		if (pc8)
-			*pc8 = 0xe0 | __SHIFTOUT(c32, __BITS(15,12));
-		S->buf[1] = 0x80 | __SHIFTOUT(c32, __BITS(11,6));
-		S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+			*pc8 = (char8_t)(
+			    0xe0 | __SHIFTOUT(c32, __BITS(15,12)));
+		S->buf[1] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(11,6)));
+		S->buf[2] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(5,0)));
 		S->nleft = 2;
 		break;
 	case 0x10000 ... 0x10ffff:
 		if (pc8)
-			*pc8 = 0xf0 | __SHIFTOUT(c32, __BITS(20,18));
-		S->buf[0] = 0x80 | __SHIFTOUT(c32, __BITS(17,12));
-		S->buf[1] = 0x80 | __SHIFTOUT(c32, __BITS(11,6));
-		S->buf[2] = 0x80 | __SHIFTOUT(c32, __BITS(5,0));
+			*pc8 = (char8_t)(
+			    0xf0 | __SHIFTOUT(c32, __BITS(20,18)));
+		S->buf[0] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(17,12)));
+		S->buf[1] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(11,6)));
+		S->buf[2] = (char8_t)(
+		    0x80 | __SHIFTOUT(c32, __BITS(5,0)));
 		S->nleft = 3;
 		break;
 	default:

Index: src/lib/libc/locale/mbrtoc16.c
diff -u src/lib/libc/locale/mbrtoc16.c:1.4 src/lib/libc/locale/mbrtoc16.c:1.5
--- src/lib/libc/locale/mbrtoc16.c:1.4	Thu Aug 15 18:22:35 2024
+++ src/lib/libc/locale/mbrtoc16.c	Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mbrtoc16.c,v 1.4 2024/08/15 22:22:35 riastradh Exp $	*/
+/*	$NetBSD: mbrtoc16.c,v 1.5 2024/08/17 20:08:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc16.c,v 1.4 2024/08/15 22:22:35 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc16.c,v 1.5 2024/08/17 20:08:13 christos Exp $");
 
 #include "namespace.h"
 
@@ -133,7 +133,7 @@ mbrtoc16(char16_t *restrict pc16, const 
 	/*
 	 * Get the private conversion state.
 	 */
-	S = (struct mbrtoc16state *)ps;
+	S = (struct mbrtoc16state *)(void *)ps;
 
 	/*
 	 * If there is a pending surrogate, yield it and consume no
@@ -182,8 +182,10 @@ mbrtoc16(char16_t *restrict pc16, const 
 		_DIAGASSERT(S->surrogate == 0);
 	} else {
 		c32 -= 0x10000;
-		const char16_t w1 = 0xd800 | __SHIFTOUT(c32, __BITS(19,10));
-		const char16_t w2 = 0xdc00 | __SHIFTOUT(c32, __BITS(9,0));
+		const char16_t w1 = (char16_t)(
+		    0xd800 | __SHIFTOUT(c32, __BITS(19,10)));
+		const char16_t w2 = (char16_t)(
+		    0xdc00 | __SHIFTOUT(c32, __BITS(9,0)));
 		if (pc16)
 			*pc16 = w1;
 		S->surrogate = w2;
Index: src/lib/libc/locale/mbrtoc32.c
diff -u src/lib/libc/locale/mbrtoc32.c:1.4 src/lib/libc/locale/mbrtoc32.c:1.5
--- src/lib/libc/locale/mbrtoc32.c:1.4	Fri Aug 16 10:00:48 2024
+++ src/lib/libc/locale/mbrtoc32.c	Sat Aug 17 16:08:13 2024
@@ -1,4 +1,4 @@
-/*	$NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $	*/
+/*	$NetBSD: mbrtoc32.c,v 1.5 2024/08/17 20:08:13 christos Exp $	*/
 
 /*-
  * Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -52,7 +52,7 @@
  */
 
 #include <sys/cdefs.h>
-__RCSID("$NetBSD: mbrtoc32.c,v 1.4 2024/08/16 14:00:48 riastradh Exp $");
+__RCSID("$NetBSD: mbrtoc32.c,v 1.5 2024/08/17 20:08:13 christos Exp $");
 
 #include "namespace.h"
 
@@ -132,7 +132,7 @@ mbrtoc32(char32_t *restrict pc32, const 
 	/*
 	 * Get the private conversion state.
 	 */
-	S = (struct mbrtoc32state *)ps;
+	S = (struct mbrtoc32state *)(void *)ps;
 
 	/*
 	 * If input length is zero, the result is always incomplete by

Reply via email to