aboutsummaryrefslogtreecommitdiff
path: root/libiberty/strstr.c
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2021-01-05 12:36:09 +0000
committerNick Clifton <nickc@redhat.com>2021-01-05 12:36:09 +0000
commitd750c713c9a34c8835e8e60370708cae675edb40 (patch)
tree5698bd80d455c9662f4c7fe90d580c38bce7798b /libiberty/strstr.c
parent5f8c2a1507c052384ce700ad7c7fb9c0c10a2421 (diff)
downloadgdb-d750c713c9a34c8835e8e60370708cae675edb40.zip
gdb-d750c713c9a34c8835e8e60370708cae675edb40.tar.gz
gdb-d750c713c9a34c8835e8e60370708cae675edb40.tar.bz2
Update libiberty with latest sources from gcc mainline
Diffstat (limited to 'libiberty/strstr.c')
-rw-r--r--libiberty/strstr.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/libiberty/strstr.c b/libiberty/strstr.c
index 60902ea..c6f6849 100644
--- a/libiberty/strstr.c
+++ b/libiberty/strstr.c
@@ -16,26 +16,20 @@ length, the function returns @var{string}.
*/
-
-/* FIXME: The above description is ANSI compiliant. This routine has not
- been validated to comply with it. -fnf */
-
#include <stddef.h>
-extern char *strchr (const char *, int);
-extern int strncmp (const void *, const void *, size_t);
+extern int memcmp (const void *, const void *, size_t);
extern size_t strlen (const char *);
char *
strstr (const char *s1, const char *s2)
{
- const char *p = s1;
const size_t len = strlen (s2);
-
- for (; (p = strchr (p, *s2)) != 0; p++)
+ while (*s1)
{
- if (strncmp (p, s2, len) == 0)
- return (char *)p;
+ if (!memcmp (s1, s2, len))
+ return (char *)s1;
+ ++s1;
}
return (0);
}