Clang-18 detects this and flags it as error x86_64-yoe-linux-clang -target x86_64-yoe-linux -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -mlittle-endian --dyld-prefix=/usr -Qunused-arguments -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/recipe-sysroot -I. -I../coreutils-9.4 -I./lib -Ilib -I../coreutils-9.4/lib -Isrc -I../coreutils-9.4/src -Wno-cast-qual -Wno-conversion -Wno-float-equal -Wno-sign-compare -Wno-undef -Wno-unused-function -Wno-unused-parameter -Wno-float-conversion -Wimplicit-fallthrough -Wno-pedantic -Wno-sign-conversion -Wno-type-limits -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/coreutils-9.4=/usr/src/debug/coreutils/9.4 -fdebug-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/coreutils-9.4=/usr/src/debug/coreutils/9.4 -fmacro-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/build=/usr/src/debug/coreutils/9.4 -fdebug-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/build=/usr/src/debug/coreutils/9.4 -fdebug-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/recipe-sysroot= -fmacro-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/recipe-sysroot= -fdebug-prefix-map=/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/coreutils/9.4/recipe-sysroot-native= -c -o lib/libcoreutils_a-posixtm.o `test -f 'lib/posixtm.c'
lib/posixtm.c:194:15: error: operand argument to checked integer operation must be an integer type other than plain 'char', 'bool', bit-precise, or an enumeration ('bool' invalid) 194 | if (ckd_add (&t, t, leapsec)) | ^~~~~~~~~~~~~~~~~~~~~~~~ usr/lib/clang/18/include/stdckdint.h:37:54: note: expanded from macro 'ckd_add' 37 | #define ckd_add(R, A, B) __builtin_add_overflow((A), (B), (R)) | ^~~ 1 error generated. * lib/posixtm.c (posixtime): Fix operand argument to checked integer operation. Signed-off-by: Khem Raj <raj.k...@gmail.com> --- ChangeLog | 5 +++++ lib/posixtm.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index e42d2c31ab..daca27a917 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2024-01-15 Khem Raj <raj.k...@gmail.com> + + * lib/posixtm.c (posixtime): Fix operand argument to checked + integer operation. + 2024-01-07 Jim Meyering <meyer...@meta.com> update-copyright: handle more cases diff --git a/lib/posixtm.c b/lib/posixtm.c index ef9f55f873..23397a6672 100644 --- a/lib/posixtm.c +++ b/lib/posixtm.c @@ -159,7 +159,7 @@ bool posixtime (time_t *p, const char *s, unsigned int syntax_bits) { struct tm tm0; - bool leapsec = false; + int leapsec = 0; if (! posix_time_parse (&tm0, s, syntax_bits)) return false; -- 2.43.0