bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v2] lib/posixtm.c: Fixe build error with clang-18


From: Khem Raj
Subject: [PATCH v2] lib/posixtm.c: Fixe build error with clang-18
Date: Tue, 16 Jan 2024 15:38:03 -0800

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.khem@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.khem@gmail.com>
+
+       * lib/posixtm.c (posixtime): Fix operand argument to checked
+       integer operation.
+
 2024-01-07  Jim Meyering  <meyering@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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]