Provide an inline startswith function in bfd.h
authorAlan Modra <amodra@gmail.com>
Fri, 19 Mar 2021 07:09:24 +0000 (17:39 +1030)
committerAlan Modra <amodra@gmail.com>
Sun, 21 Mar 2021 12:30:32 +0000 (23:00 +1030)
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.

bfd/ChangeLog
bfd/bfd-in.h
bfd/bfd-in2.h
gdbsupport/ChangeLog
gdbsupport/common-utils.h
libctf/ChangeLog
libctf/ctf-impl.h

index 90ec96bacbf60b6908cf0b2c43e2ffa28417a0bd..bb273426eb36e64ef71139659ae68563c6ee516b 100644 (file)
@@ -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
index c9a767314750ba08e09d16da491496def5940222..453ac48e262e99110c1b62903d7c5a74b6cf94dd 100644 (file)
@@ -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)
index 54c1c9a6b6443b503e93d231637b043d3b9fc542..c8bf687ba2db54c02daa1fe6d2deff33c965f0ea 100644 (file)
@@ -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);
 
index c8fa9e73148b5ad103f330ea9a1d9b7051a355c2..a838cfc999199b948a7862df33d1d31ee543f0b9 100644 (file)
@@ -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
index 28c08ee976678cb0563523b62966e1edc6debc55..1de747f186d04d01dc3b4bc2865fff86a5bd59be 100644 (file)
@@ -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)
index d19327ee58a268a31672df31e5b12eddfedd5c48..59f6fb042a0210df344a1d36e5f81b58543c7b75 100644 (file)
@@ -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.
index ad4af32e7eef63be9b2f25cab901af306a25b02a..342d2ff23e2d038c929311121aab67956d957bc9 100644 (file)
@@ -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>