This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] Provide xmemdup0
- From: Alan Modra <amodra at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 27 Apr 2016 07:40:20 -0000
- Subject: [binutils-gdb] Provide xmemdup0
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=25771140e2dc735712d052ba621c57eeb7248d9f
commit 25771140e2dc735712d052ba621c57eeb7248d9f
Author: Alan Modra <amodra@gmail.com>
Date: Wed Apr 27 15:42:50 2016 +0930
Provide xmemdup0
and some tidies in as.h
* as.h (inline, __PTR_TO_INT, __INT_TO_PTR): Don't define.
(xmemdup0): New inline function.
Diff:
---
gas/ChangeLog | 5 +++++
gas/as.h | 23 ++++++++---------------
2 files changed, 13 insertions(+), 15 deletions(-)
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f95948d..94fa783 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -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.
diff --git a/gas/as.h b/gas/as.h
index 9ff8bb8..f3e1cf0 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -98,13 +98,6 @@
/* 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;