diff options
author | Robert Clausecker <fuz@FreeBSD.org> | 2023-07-10 22:10:52 +0000 |
---|---|---|
committer | Robert Clausecker <fuz@FreeBSD.org> | 2023-07-14 20:26:43 +0000 |
commit | 3f5788e0ed8e85567f651ad360596b8c330af5a9 (patch) | |
tree | c925116f91742a337b3aa744bc4c8842d8dafbcb /lib/libc/string | |
parent | e74bc7757a2ec538c5070973dbd83394933d4bfe (diff) | |
download | src-3f5788e0ed8e85567f651ad360596b8c330af5a9.tar.gz src-3f5788e0ed8e85567f651ad360596b8c330af5a9.zip |
Diffstat (limited to 'lib/libc/string')
-rw-r--r-- | lib/libc/string/ffs.c | 2 | ||||
-rw-r--r-- | lib/libc/string/ffsl.c | 2 | ||||
-rw-r--r-- | lib/libc/string/ffsll.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/lib/libc/string/ffs.c b/lib/libc/string/ffs.c index c011b3390612..34140e3e4d85 100644 --- a/lib/libc/string/ffs.c +++ b/lib/libc/string/ffs.c @@ -47,5 +47,5 @@ __FBSDID("$FreeBSD$"); int ffs(int mask) { - return (__builtin_ffs(mask)); + return (mask == 0 ? 0 : __builtin_ctz(mask) + 1); } diff --git a/lib/libc/string/ffsl.c b/lib/libc/string/ffsl.c index 6e1ac8ec45c1..701e23cdf8f4 100644 --- a/lib/libc/string/ffsl.c +++ b/lib/libc/string/ffsl.c @@ -44,5 +44,5 @@ __FBSDID("$FreeBSD$"); int ffsl(long mask) { - return (__builtin_ffsl(mask)); + return (mask == 0 ? 0 : __builtin_ctzl(mask) + 1); } diff --git a/lib/libc/string/ffsll.c b/lib/libc/string/ffsll.c index b945658b9008..e94fb518eb03 100644 --- a/lib/libc/string/ffsll.c +++ b/lib/libc/string/ffsll.c @@ -44,5 +44,5 @@ __FBSDID("$FreeBSD$"); int ffsll(long long mask) { - return (__builtin_ffsll(mask)); + return (mask == 0 ? 0 : __builtin_ctzll(mask) + 1); } |