* sb.c (sb_check): Use __builtin_clzll when size_t is not the

same size as long.
This commit is contained in:
Alan Modra 2012-10-29 10:17:52 +00:00
parent ce23608fa2
commit 0c5daaa929
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2012-10-29 Alan Modra <amodra@gmail.com>
* sb.c (sb_check): Use __builtin_clzll when size_t is not the
same size as long.
2012-10-29 Alan Modra <amodra@gmail.com>
* config/tc-ppc.c (ppc_znop): Remove unused vars.

View File

@ -137,7 +137,10 @@ sb_check (sb *ptr, size_t len)
if ((ssize_t) want < 0)
as_fatal ("string buffer overflow");
#if GCC_VERSION >= 3004
max = (size_t) 1 << (CHAR_BIT * sizeof (want) - __builtin_clzl (want));
max = (size_t) 1 << (CHAR_BIT * sizeof (want)
- (sizeof (want) <= sizeof (long)
? __builtin_clzl ((long) want)
: __builtin_clzll ((long long) want)));
#else
max = 128;
while (want > max)