diff options
author | Eric Blake <ebb9@byu.net> | 2008-04-21 09:57:07 -0600 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2008-04-21 09:57:07 -0600 |
commit | 218c1d232b2568450b4581f93d544e4d3af59c36 (patch) | |
tree | 4fcf22535315bf4654bf6e2eab2136b56e114822 /lib | |
parent | 42e8fd6b9ce92ca7f15a10fa62035f65b3478b32 (diff) | |
download | gnulib-218c1d232b2568450b4581f93d544e4d3af59c36.tar.gz |
Work around preprocessors that don't handle UINTMAX_MAX.
* lib/memchr2.c (memchr2): Avoid embedded #if.
Reported by Alain Guibert, fix suggested by Bruno Haible.
Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/memchr2.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/lib/memchr2.c b/lib/memchr2.c index d5b0a787a8..38533434d4 100644 --- a/lib/memchr2.c +++ b/lib/memchr2.c @@ -83,18 +83,19 @@ memchr2 (void const *s, int c1_in, int c2_in, size_t n) charmask2 = c2 | (c2 << 8); charmask1 |= charmask1 << 16; charmask2 |= charmask2 << 16; -#if 0xffffffffU < UINTMAX_MAX - magic_bits |= magic_bits << 32; - charmask1 |= charmask1 << 32; - charmask2 |= charmask2 << 32; - if (8 < sizeof longword1) - for (i = 64; i < sizeof longword1 * 8; i *= 2) - { - magic_bits |= magic_bits << i; - charmask1 |= charmask1 << i; - charmask2 |= charmask2 << i; - } -#endif + if (0xffffffffU < UINTMAX_MAX) + { + magic_bits |= magic_bits << 32; + charmask1 |= charmask1 << 32; + charmask2 |= charmask2 << 32; + if (8 < sizeof longword1) + for (i = 64; i < sizeof longword1 * 8; i *= 2) + { + magic_bits |= magic_bits << i; + charmask1 |= charmask1 << i; + charmask2 |= charmask2 << i; + } + } magic_bits = (UINTMAX_MAX >> 1) & (magic_bits | 1); /* Instead of the traditional loop which tests each character, |