diff options
author | Alan Modra <amodra@gmail.com> | 2021-03-19 17:39:24 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2021-03-21 23:00:32 +1030 |
commit | e93388417c1ecc6d69b155045cabb994cb8687fd (patch) | |
tree | 24fa2ed727efd5a1775e4c8b76b8d92a5ae0ea10 | |
parent | 38e41a88457d2fcab42596c5d0183e410868c813 (diff) | |
download | gdb-e93388417c1ecc6d69b155045cabb994cb8687fd.zip gdb-e93388417c1ecc6d69b155045cabb994cb8687fd.tar.gz gdb-e93388417c1ecc6d69b155045cabb994cb8687fd.tar.bz2 |
Provide an inline startswith function in bfd.h
bfd/
* bfd-in.h (startswith): New inline.
(CONST_STRNEQ): Use startswith.
* bfd-in2.h: Regenerate.
gdbsupport/
* common-utils.h (startswith): Delete version now supplied by bfd.h.
libctf/
* ctf-impl.h: Include string.h.
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/bfd-in.h | 10 | ||||
-rw-r--r-- | bfd/bfd-in2.h | 10 | ||||
-rw-r--r-- | gdbsupport/ChangeLog | 4 | ||||
-rw-r--r-- | gdbsupport/common-utils.h | 12 | ||||
-rw-r--r-- | libctf/ChangeLog | 4 | ||||
-rw-r--r-- | libctf/ctf-impl.h | 1 |
7 files changed, 35 insertions, 12 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 90ec96b..bb27342 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2021-03-21 Alan Modra <amodra@gmail.com> + + * bfd-in.h (startswith): New inline. + (CONST_STRNEQ): Use startswith. + * bfd-in2.h: Regenerate. + 2021-03-20 Alan Modra <amodra@gmail.com> PR 27590 diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h index c9a7673..453ac48 100644 --- a/bfd/bfd-in.h +++ b/bfd/bfd-in.h @@ -65,7 +65,6 @@ extern "C" { definition of strncmp is provided here. Note - these macros do NOT work if STR2 is not a constant string. */ -#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0) /* strcpy() can have a similar problem, but since we know we are copying a constant string, we can use memcpy which will be faster since there is no need to check for a NUL byte inside STR. We @@ -564,3 +563,12 @@ struct ecoff_debug_swap; struct ecoff_extr; struct bfd_link_info; struct bfd_link_hash_entry; + +/* Return TRUE if the start of STR matches PREFIX, FALSE otherwise. */ + +static inline bfd_boolean +startswith (const char *str, const char *prefix) +{ + return strncmp (str, prefix, strlen (prefix)) == 0; +} +#define CONST_STRNEQ(STR1,STR2) startswith (STR1, STR2) diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 54c1c9a..c8bf687 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -72,7 +72,6 @@ extern "C" { definition of strncmp is provided here. Note - these macros do NOT work if STR2 is not a constant string. */ -#define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0) /* strcpy() can have a similar problem, but since we know we are copying a constant string, we can use memcpy which will be faster since there is no need to check for a NUL byte inside STR. We @@ -571,6 +570,15 @@ struct ecoff_debug_swap; struct ecoff_extr; struct bfd_link_info; struct bfd_link_hash_entry; + +/* Return TRUE if the start of STR matches PREFIX, FALSE otherwise. */ + +static inline bfd_boolean +startswith (const char *str, const char *prefix) +{ + return strncmp (str, prefix, strlen (prefix)) == 0; +} +#define CONST_STRNEQ(STR1,STR2) startswith (STR1, STR2) /* Extracted from init.c. */ unsigned int bfd_init (void); diff --git a/gdbsupport/ChangeLog b/gdbsupport/ChangeLog index c8fa9e7..a838cfc 100644 --- a/gdbsupport/ChangeLog +++ b/gdbsupport/ChangeLog @@ -1,3 +1,7 @@ +2021-03-21 Alan Modra <amodra@gmail.com> + + * common-utils.h (startswith): Delete version now supplied by bfd.h. + 2021-02-05 Paul E. Murphy <murphy@linux.ibm.com> * common-defs.h (ATTRIBUTE_PRINTF): Rename diff --git a/gdbsupport/common-utils.h b/gdbsupport/common-utils.h index 28c08ee..1de747f 100644 --- a/gdbsupport/common-utils.h +++ b/gdbsupport/common-utils.h @@ -116,16 +116,8 @@ std::string extract_string_maybe_quoted (const char **arg); extern const char *safe_strerror (int); -/* Return true if the start of STRING matches PATTERN, false otherwise. */ - -static inline bool -startswith (const char *string, const char *pattern) -{ - return strncmp (string, pattern, strlen (pattern)) == 0; -} - -/* Version of startswith that takes string_view arguments. See comment - above. */ +/* Version of startswith that takes string_view arguments. Return + true if the start of STRING matches PATTERN, false otherwise. */ static inline bool startswith (gdb::string_view string, gdb::string_view pattern) diff --git a/libctf/ChangeLog b/libctf/ChangeLog index d19327e..59f6fb0 100644 --- a/libctf/ChangeLog +++ b/libctf/ChangeLog @@ -1,3 +1,7 @@ +2021-03-21 Alan Modra <amodra@gmail.com> + + * ctf-impl.h: Include string.h. + 2021-03-18 Nick Alcock <nick.alcock@oracle.com> * ctf-types.c (ctf_type_encoding): Support, after a fashion, for enums. diff --git a/libctf/ctf-impl.h b/libctf/ctf-impl.h index ad4af32..342d2ff 100644 --- a/libctf/ctf-impl.h +++ b/libctf/ctf-impl.h @@ -32,6 +32,7 @@ #include <stddef.h> #include <stdio.h> #include <stdint.h> +#include <string.h> #include <limits.h> #include <ctype.h> #include <elf.h> |