Module Name: src
Committed By: riastradh
Date: Wed Oct 9 14:28:56 UTC 2024
Modified Files:
src/lib/libc/locale: c16rtomb.c
Log Message:
c16rtomb(3): Omit needless cast.
Now that lint has been taught to propagate the range in this kind of
expression (PR toolchain/58728), we can omit the cast -- the result is
guaranteed not to the truncated.
PR standards/58601: uchar.h C23 compliance: char8_t, mbrtoc8, c8rtomb
PR toolchain/58728: lint objects to __SHIFTIN/__BITS of values in
known-limited range without cast
To generate a diff of this commit:
cvs rdiff -u -r1.8 -r1.9 src/lib/libc/locale/c16rtomb.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.8 src/lib/libc/locale/c16rtomb.c:1.9
--- src/lib/libc/locale/c16rtomb.c:1.8 Tue Oct 8 13:42:17 2024
+++ src/lib/libc/locale/c16rtomb.c Wed Oct 9 14:28:56 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: c16rtomb.c,v 1.8 2024/10/08 13:42:17 riastradh Exp $ */
+/* $NetBSD: c16rtomb.c,v 1.9 2024/10/09 14:28:56 riastradh Exp $ */
/*-
* Copyright (c) 2024 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
-__RCSID("$NetBSD: c16rtomb.c,v 1.8 2024/10/08 13:42:17 riastradh Exp $");
+__RCSID("$NetBSD: c16rtomb.c,v 1.9 2024/10/09 14:28:56 riastradh Exp $");
#include "namespace.h"
@@ -177,14 +177,8 @@ c16rtomb_l(char *restrict s, char16_t c1
}
const char16_t w1 = S->surrogate;
const char16_t w2 = c16;
- /*
- * XXX lint is unconvinced that this cast is needless:
- * PR toolchain/58728: __SHIFTIN/__BITS of values in
- * known-limited range without cast
- */
- c32 = (char32_t)(
- __SHIFTIN(__SHIFTOUT(w1, __BITS(9,0)), __BITS(19,10)) |
- __SHIFTIN(__SHIFTOUT(w2, __BITS(9,0)), __BITS(9,0)));
+ c32 = __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) { /* 3. high surrogate */