merge from gcc
authorDJ Delorie <dj@redhat.com>
Mon, 27 Aug 2001 20:05:03 +0000 (20:05 +0000)
committerDJ Delorie <dj@redhat.com>
Mon, 27 Aug 2001 20:05:03 +0000 (20:05 +0000)
include/ChangeLog
include/ansidecl.h
libiberty/ChangeLog
libiberty/concat.c

index 5c76a7baa598d24bbcffa85b0abba7ecdfa601eb..640b058bcb8d057da3dc1586348ec22578081624 100644 (file)
@@ -1,3 +1,7 @@
+2001-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * ansidecl.h (VA_OPEN, VA_CLOSE): Allow multiple uses.
+
 2001-08-25  Nick Clifton  <nickc@cambridge.redhat.com>
 
        * bfdlink.h (struct bfd_link_info): Change 'spare_dynamic_tags' to
index b7c4c40abff94dd8e69f92d2a976e2b1bef8eaa7..4c63fa66e4984112a9aa8db22e7f043d11335205 100644 (file)
@@ -152,8 +152,8 @@ So instead we use the macro below and test it against specific values.  */
 /* "struct Qdmy" swallows the semicolon after VA_OPEN/VA_FIXEDARG's
    use without inhibiting further decls and without declaring an
    actual variable.  */
-#define VA_OPEN(AP, VAR)       va_list AP; va_start(AP, VAR); { struct Qdmy
-#define VA_CLOSE(AP)           } va_end(AP)
+#define VA_OPEN(AP, VAR)       va_list AP; va_start(AP, VAR); { struct Qdmy
+#define VA_CLOSE(AP)           } va_end(AP); }
 #define VA_FIXEDARG(AP, T, N)  struct Qdmy
  
 #undef const
@@ -199,8 +199,8 @@ So instead we use the macro below and test it against specific values.  */
 #define VPARAMS(args)          (va_alist) va_dcl
 #define VA_START(va_list, var) va_start(va_list)
 
-#define VA_OPEN(AP, VAR)               va_list AP; va_start(AP); { struct Qdmy
-#define VA_CLOSE(AP)                   } va_end(AP)
+#define VA_OPEN(AP, VAR)               va_list AP; va_start(AP); { struct Qdmy
+#define VA_CLOSE(AP)                   } va_end(AP); }
 #define VA_FIXEDARG(AP, TYPE, NAME)    TYPE NAME = va_arg(AP, TYPE)
 
 /* some systems define these in header files for non-ansi mode */
index dab5db8ca9ab243abe17357e3053c6f3cfded9ca..b4866cfaf8f80a4e0e153dee4c854252349112e9 100644 (file)
@@ -1,3 +1,7 @@
+2001-08-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+       * concat.c (concat): Use VPARAMS, VA_OPEN, VA_FIXEDARG & VA_CLOSE.
+
 2001-08-23  Ulrich Drepper  <drepper@redhat.com>
 
        * regex.c (truncate_wchar): Use wcrtomb not wctomb.
index 01270eadcf2d74643c94c4a63ccbfed0935c4496..2e31e833f4db8c888b753351e9b71211218c84bf 100644 (file)
@@ -74,48 +74,29 @@ NOTES
 #  endif
 # endif
 
-/* VARARGS */
-#ifdef ANSI_PROTOTYPES
-char *
-concat (const char *first, ...)
-#else
 char *
-concat (va_alist)
-     va_dcl
-#endif
+concat VPARAMS ((const char *first, ...))
 {
   register size_t length;
   register char *newstr;
   register char *end;
   register const char *arg;
-  va_list args;
-#ifndef ANSI_PROTOTYPES
-  const char *first;
-#endif
 
   /* First compute the size of the result and get sufficient memory.  */
-#ifdef ANSI_PROTOTYPES
-  va_start (args, first);
-#else
-  va_start (args);
-  first = va_arg (args, const char *);
-#endif
-
+  VA_OPEN (args, first);
+  VA_FIXEDARG (args, const char *, first);
+  
   length = 0;
   for (arg = first; arg ; arg = va_arg (args, const char *))
     length += strlen (arg);
 
-  va_end (args);
+  VA_CLOSE (args);
 
   newstr = (char *) xmalloc (length + 1);
 
   /* Now copy the individual pieces to the result string. */
-#ifdef ANSI_PROTOTYPES
-  va_start (args, first);
-#else
-  va_start (args);
-  first = va_arg (args, const char *);
-#endif
+  VA_OPEN (args, first);
+  VA_FIXEDARG (args, const char *, first);
 
   end = newstr;
   for (arg = first; arg ; arg = va_arg (args, const char *))
@@ -125,7 +106,7 @@ concat (va_alist)
       end += length;
     }
   *end = '\000';
-  va_end (args);
+  VA_CLOSE (args);
 
   return newstr;
 }