summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEric Blake <ebb9@byu.net>2008-04-21 09:57:07 -0600
committerEric Blake <ebb9@byu.net>2008-04-21 09:57:07 -0600
commit218c1d232b2568450b4581f93d544e4d3af59c36 (patch)
tree4fcf22535315bf4654bf6e2eab2136b56e114822 /lib
parent42e8fd6b9ce92ca7f15a10fa62035f65b3478b32 (diff)
downloadgnulib-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.c25
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,