OSDN Git Service

merge from gcc
authorDJ Delorie <dj@delorie.com>
Tue, 15 Apr 2003 03:53:53 +0000 (03:53 +0000)
committerDJ Delorie <dj@delorie.com>
Tue, 15 Apr 2003 03:53:53 +0000 (03:53 +0000)
15 files changed:
libiberty/ChangeLog
libiberty/argv.c
libiberty/copysign.c
libiberty/memchr.c
libiberty/memcmp.c
libiberty/memcpy.c
libiberty/memmove.c
libiberty/memset.c
libiberty/sigsetmask.c
libiberty/strcasecmp.c
libiberty/strdup.c
libiberty/strncasecmp.c
libiberty/strncmp.c
libiberty/xatexit.c
libiberty/xmalloc.c

index 28cb255..6e9f693 100644 (file)
@@ -1,3 +1,7 @@
+2003-04-14  Roger Sayle  <roger@eyesopen.com>
+
+       * strdup.c (strdup): Tweak implementation to use memcpy.
+
 2003-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 
        * configure.in (HAVE_UINTPTR_T): Always define.
index 4205579..e4a0379 100644 (file)
@@ -29,7 +29,7 @@ Boston, MA 02111-1307, USA.  */
 
 /*  Routines imported from standard C runtime libraries. */
 
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 
 #include <stddef.h>
 #include <string.h>
index 5c48a54..d288be2 100644 (file)
@@ -131,7 +131,9 @@ typedef union
 
 #if defined(__IEEE_BIG_ENDIAN) || defined(__IEEE_LITTLE_ENDIAN)
 
-double DEFUN(copysign, (x, y), double x AND double y)
+double
+copysign (x, y)
+     double x, y;
 {
   __ieee_double_shape_type a,b;
   b.value = y;  
@@ -142,7 +144,9 @@ double DEFUN(copysign, (x, y), double x AND double y)
 
 #else
 
-double DEFUN(copysign, (x, y), double x AND double y)
+double
+copysign (x, y)
+     double x, y;
 {
   if ((x < 0 && y > 0) || (x > 0 && y < 0))
     return -x;
index f94bea0..3948125 100644 (file)
@@ -15,7 +15,7 @@ returned.
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
index d8d3997..92f2b6e 100644 (file)
@@ -16,15 +16,17 @@ as if comparing unsigned char arrays.
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
 #endif
 
 int
-DEFUN(memcmp, (str1, str2, count),
-      const PTR str1 AND const PTR str2 AND size_t count)
+memcmp (str1, str2, count)
+     const PTR str1;
+     const PTR str2;
+     size_t count;
 {
   register const unsigned char *s1 = (const unsigned char*)str1;
   register const unsigned char *s2 = (const unsigned char*)str2;
index 0f2bac7..5eece7a 100644 (file)
@@ -13,14 +13,19 @@ Copies @var{length} bytes from memory region @var{in} to region
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
 #endif
 
+void bcopy PARAMS((const void*, void*, size_t));
+
 PTR
-DEFUN(memcpy, (out, in, length), PTR out AND const PTR in AND size_t length)
+memcpy (out, in, length)
+     PTR out;
+     const PTR in;
+     size_t length;
 {
     bcopy(in, out, length);
     return out;
index 3ec7320..00ac053 100644 (file)
@@ -13,12 +13,14 @@ Copies @var{count} bytes from memory area @var{from} to memory area
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
 #endif
 
+void bcopy PARAMS ((const void*, void*, size_t));
+
 PTR
 memmove (s1, s2, n)
      PTR s1;
index 489ca17..5119f85 100644 (file)
@@ -13,15 +13,17 @@ Sets the first @var{count} bytes of @var{s} to the constant byte
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
 #endif
 
 PTR
-DEFUN(memset, (dest, val, len),
-      PTR dest AND register int val AND register size_t len)
+memset (dest, val, len)
+     PTR dest;
+     register int val;
+     register size_t len;
 {
   register unsigned char *ptr = (unsigned char*)dest;
   while (len-- > 0)
index f705fbb..4de3e4b 100644 (file)
@@ -25,8 +25,8 @@ extern void abort PARAMS ((void)) ATTRIBUTE_NORETURN;
 
 #ifdef SIG_SETMASK
 int
-DEFUN(sigsetmask,(set),
-      int set)
+sigsetmask (set)
+      int set;
 {
     sigset_t new;
     sigset_t old;
index 4bfe650..d2608dc 100644 (file)
@@ -25,7 +25,7 @@ static char sccsid[] = "@(#)strcasecmp.c      5.5 (Berkeley) 11/24/87";
 #endif /* LIBC_SCCS and not lint */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
index 49233ba..071a4a4 100644 (file)
@@ -9,13 +9,24 @@ Returns a pointer to a copy of @var{s} in memory obtained from
 
 */
 
+#include <ansidecl.h>
+#ifdef ANSI_PROTOTYPES
+#include <stddef.h>
+#else
+#define size_t unsigned long
+#endif
+
+extern size_t  strlen PARAMS ((const char*));
+extern PTR     malloc PARAMS ((size_t));
+extern PTR     memcpy PARAMS ((PTR, const PTR, size_t));
+
 char *
 strdup(s)
      char *s;
 {
-    char *result = (char*)malloc(strlen(s) + 1);
-    if (result == (char*)0)
-       return (char*)0;
-    strcpy(result, s);
-    return result;
+  size_t len = strlen (s) + 1;
+  char *result = (char*) malloc (len);
+  if (result == (char*) 0)
+    return (char*) 0;
+  return (char*) memcpy (result, s, len);
 }
index 77cb421..10feee8 100644 (file)
@@ -25,7 +25,7 @@ static char sccsid[] = "@(#)strcasecmp.c      5.5 (Berkeley) 11/24/87";
 #endif /* LIBC_SCCS and not lint */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
index 819cea6..ad87e1f 100644 (file)
@@ -13,7 +13,7 @@ Compares the first @var{n} bytes of two strings, returning a value as
 */
 
 #include <ansidecl.h>
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
index abf3407..075599c 100644 (file)
@@ -27,7 +27,7 @@ failure.  If you use @code{xatexit} to register functions, you must use
 
 #include <stdio.h>
 
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long
index 4c8249a..c3fe1a8 100644 (file)
@@ -68,7 +68,7 @@ function will be called to print an error message and terminate execution.
 
 #include <stdio.h>
 
-#ifdef __STDC__
+#ifdef ANSI_PROTOTYPES
 #include <stddef.h>
 #else
 #define size_t unsigned long