Provide xmemdup0
authorAlan Modra <amodra@gmail.com>
Wed, 27 Apr 2016 06:12:50 +0000 (15:42 +0930)
committerAlan Modra <amodra@gmail.com>
Wed, 27 Apr 2016 07:37:17 +0000 (17:07 +0930)
and some tidies in as.h

* as.h (inline, __PTR_TO_INT, __INT_TO_PTR): Don't define.
(xmemdup0): New inline function.

gas/ChangeLog
gas/as.h

index f95948d..94fa783 100644 (file)
@@ -1,3 +1,8 @@
+2016-04-27  Alan Modra  <amodra@gmail.com>
+
+       * as.h (inline, __PTR_TO_INT, __INT_TO_PTR): Don't define.
+       (xmemdup0): New inline function.
+
 2016-04-22  Maciej W. Rozycki  <macro@imgtec.com>
 
        * config/tc-mips.c (code_option_type): New enum.
index 9ff8bb8..f3e1cf0 100644 (file)
--- a/gas/as.h
+++ b/gas/as.h
 /* Define the standard progress macros.  */
 #include "progress.h"
 
-/* This doesn't get taken care of anywhere.  */
-#ifndef __MWERKS__  /* Metrowerks C chokes on the "defined (inline)"  */
-#if !defined (__GNUC__) && !defined (inline)
-#define inline
-#endif
-#endif /* !__MWERKS__ */
-
 /* Other stuff from config.h.  */
 #ifdef NEED_DECLARATION_ENVIRON
 extern char **environ;
@@ -144,14 +137,6 @@ extern int vsnprintf(char *, size_t, const char *, va_list);
 #define bcopy(src,dest,size)   memcpy (dest, src, size)
 #endif
 
-/* Make Saber happier on obstack.h.  */
-#ifdef SABER
-#undef  __PTR_TO_INT
-#define __PTR_TO_INT(P) ((int) (P))
-#undef  __INT_TO_PTR
-#define __INT_TO_PTR(P) ((char *) (P))
-#endif
-
 #ifndef __LINE__
 #define __LINE__ "unknown"
 #endif /* __LINE__ */
@@ -522,6 +507,14 @@ segT   subseg_get (const char *, int);
 const char *remap_debug_filename (const char *);
 void add_debug_prefix_map (const char *);
 
+static inline void *
+xmemdup0 (const void *in, size_t len)
+{
+  char *out = (char *) xmalloc (len + 1);
+  out[len] = 0;
+  return memcpy (out, in, len);
+}
+
 struct expressionS;
 struct fix;
 typedef struct symbol symbolS;