projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ptsname_r test: Avoid gcc warning on glibc systems.
[gnulib.git]
/
lib
/
memchr.c
diff --git
a/lib/memchr.c
b/lib/memchr.c
index
3da039b
..
6d903b1
100644
(file)
--- a/
lib/memchr.c
+++ b/
lib/memchr.c
@@
-1,4
+1,4
@@
-/* Copyright (C) 1991, 1993, 1996
, 1997, 1999, 2000, 2003, 2004, 2006, 2008
+/* Copyright (C) 1991, 1993, 1996
-1997, 1999-2000, 2003-2004, 2006, 2008-2011
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
Free Software Foundation, Inc.
Based on strlen implementation by Torbjorn Granlund (tege@sics.se),
@@
-45,8
+45,6
@@
along with this program. If not, see <http://www.gnu.org/licenses/>. */
# define BP_SYM(sym) sym
#endif
# define BP_SYM(sym) sym
#endif
-#include "intprops.h"
-
#undef __memchr
#ifdef _LIBC
# undef memchr
#undef __memchr
#ifdef _LIBC
# undef memchr
@@
-65,7
+63,7
@@
__memchr (void const *s, int c_in, size_t n)
performance. On 64-bit hardware, unsigned long is generally 64
bits already. Change this typedef to experiment with
performance. */
performance. On 64-bit hardware, unsigned long is generally 64
bits already. Change this typedef to experiment with
performance. */
- typedef unsigned long longword;
+ typedef unsigned long
int
longword;
const unsigned char *char_ptr;
const longword *longword_ptr;
const unsigned char *char_ptr;
const longword *longword_ptr;
@@
-94,20
+92,20
@@
__memchr (void const *s, int c_in, size_t n)
repeated_one = 0x01010101;
repeated_c = c | (c << 8);
repeated_c |= repeated_c << 16;
repeated_one = 0x01010101;
repeated_c = c | (c << 8);
repeated_c |= repeated_c << 16;
- if (0xffffffffU <
TYPE_MAXIMUM (longword)
)
+ if (0xffffffffU <
(longword) -1
)
{
repeated_one |= repeated_one << 31 << 1;
repeated_c |= repeated_c << 31 << 1;
if (8 < sizeof (longword))
{
repeated_one |= repeated_one << 31 << 1;
repeated_c |= repeated_c << 31 << 1;
if (8 < sizeof (longword))
- {
-
in
t i;
-
- for (i = 64; i < sizeof (longword) * 8; i *= 2)
- {
- repeated_one |= repeated_one << i;
- repeated_c |= repeated_c << i;
- }
- }
+
{
+
size_
t i;
+
+
for (i = 64; i < sizeof (longword) * 8; i *= 2)
+
{
+
repeated_one |= repeated_one << i;
+
repeated_c |= repeated_c << i;
+
}
+
}
}
/* Instead of the traditional loop which tests each byte, we will test a
}
/* Instead of the traditional loop which tests each byte, we will test a
@@
-146,8
+144,8
@@
__memchr (void const *s, int c_in, size_t n)
longword longword1 = *longword_ptr ^ repeated_c;
if ((((longword1 - repeated_one) & ~longword1)
longword longword1 = *longword_ptr ^ repeated_c;
if ((((longword1 - repeated_one) & ~longword1)
- & (repeated_one << 7)) != 0)
- break;
+
& (repeated_one << 7)) != 0)
+
break;
longword_ptr++;
n -= sizeof (longword);
}
longword_ptr++;
n -= sizeof (longword);
}
@@
-164,7
+162,7
@@
__memchr (void const *s, int c_in, size_t n)
for (; n > 0; --n, ++char_ptr)
{
if (*char_ptr == c)
for (; n > 0; --n, ++char_ptr)
{
if (*char_ptr == c)
- return (void *) char_ptr;
+
return (void *) char_ptr;
}
return NULL;
}
return NULL;