diff options
author | Alan Modra <amodra@bigpond.net.au> | 2012-10-29 10:17:51 +0000 |
---|---|---|
committer | Alan Modra <amodra@bigpond.net.au> | 2012-10-29 10:17:51 +0000 |
commit | bd463258244dd3941353008a18ee3198a2f93448 (patch) | |
tree | e56c384504ddc8eb0be4cd834880fa2d0e6c86cd /gas/sb.c | |
parent | 5fa5dee4440eb5e7bf4221ebac5c2a5b4b1e7bcf (diff) | |
download | binutils-redhat-bd463258244dd3941353008a18ee3198a2f93448.tar.gz |
* sb.c (sb_check): Use __builtin_clzll when size_t is not the
same size as long.
Diffstat (limited to 'gas/sb.c')
-rw-r--r-- | gas/sb.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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) |