diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-02-03 12:01:33 +0000 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-02-06 16:16:19 +0000 |
commit | 32c7acd46401530fdbd4e98508c9baaa705f8b53 (patch) | |
tree | 000fcd17f9b6ddbc14af397f33963e72a3c9d4bb /benchtests | |
parent | d2d3f3720ce627a4fe154d8dd14db716a32bcc6e (diff) | |
download | glibc-32c7acd46401530fdbd4e98508c9baaa705f8b53.zip glibc-32c7acd46401530fdbd4e98508c9baaa705f8b53.tar.gz glibc-32c7acd46401530fdbd4e98508c9baaa705f8b53.tar.bz2 |
Replace rawmemchr (s, '\0') with strchr
Almost all uses of rawmemchr find the end of a string. Since most targets use
a generic implementation, replacing it with strchr is better since that is
optimized by compilers into strlen (s) + s. Also fix the generic rawmemchr
implementation to use a cast to unsigned char in the if statement.
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Diffstat (limited to 'benchtests')
-rw-r--r-- | benchtests/bench-rawmemchr.c | 2 | ||||
-rw-r--r-- | benchtests/bench-strtok.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/benchtests/bench-rawmemchr.c b/benchtests/bench-rawmemchr.c index f6398f8..088c516 100644 --- a/benchtests/bench-rawmemchr.c +++ b/benchtests/bench-rawmemchr.c @@ -30,7 +30,7 @@ typedef char *(*proto_t) (const char *, int); char * generic_rawmemchr (const char *s, int c) { - if (c != 0) + if ((unsigned char) c != 0) return memchr (s, c, PTRDIFF_MAX); return (char *)s + strlen (s); } diff --git a/benchtests/bench-strtok.c b/benchtests/bench-strtok.c index 10260e9..711bdaa 100644 --- a/benchtests/bench-strtok.c +++ b/benchtests/bench-strtok.c @@ -42,7 +42,7 @@ oldstrtok (char *s, const char *delim) s = strpbrk (token, delim); if (s == NULL) /* This token finishes the string. */ - olds = rawmemchr (token, '\0'); + olds = strchr (token, '\0'); else { /* Terminate the token and make OLDS point past it. */ |