aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaveh Ghazi <ghazi@caip.rutgers.edu>2001-09-04 18:19:18 +0000
committerKaveh Ghazi <ghazi@caip.rutgers.edu>2001-09-04 18:19:18 +0000
commitd380f90e7148127fe2d77eb9985fe73a1559ff2a (patch)
tree7713568cbdef36c81b9cfb7cd201c42fb338f89c
parent1f336b1e9c561b16f4609f90f3ad07eca5039a95 (diff)
* asprintf.c: Don't define USE_STDARG. Use VPARAMS, VA_OPEN,
VA_FIXEDARG & VA_CLOSE. * vasprintf.c: Check HAVE_STRING_H when including string.h. (checkit): Delete redundant prototype. Add ATTRIBUTE_PRINTF_1. Use VA_OPEN, VA_FIXEDARG & VA_CLOSE. Free allocated string. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@45382 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libiberty/ChangeLog9
-rw-r--r--libiberty/asprintf.c28
-rw-r--r--libiberty/vasprintf.c25
3 files changed, 25 insertions, 37 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 0b3ed2e0d15..afeeaaf9bbb 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,12 @@
+2001-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * asprintf.c: Don't define USE_STDARG. Use VPARAMS, VA_OPEN,
+ VA_FIXEDARG & VA_CLOSE.
+
+ * vasprintf.c: Check HAVE_STRING_H when including string.h.
+ (checkit): Delete redundant prototype. Add ATTRIBUTE_PRINTF_1.
+ Use VA_OPEN, VA_FIXEDARG & VA_CLOSE. Free allocated string.
+
2001-08-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* concat.c (concat): Use VPARAMS, VA_OPEN, VA_FIXEDARG & VA_CLOSE.
diff --git a/libiberty/asprintf.c b/libiberty/asprintf.c
index 5aaf3200f0d..e09af239ae7 100644
--- a/libiberty/asprintf.c
+++ b/libiberty/asprintf.c
@@ -22,36 +22,20 @@ Boston, MA 02111-1307, USA. */
#include "ansidecl.h"
#include "libiberty.h"
-#if defined (ANSI_PROTOTYPES) || defined (ALMOST_STDC)
-#define USE_STDARG
-#endif
-
-#ifdef USE_STDARG
+#ifdef ANSI_PROTOTYPES
#include <stdarg.h>
#else
#include <varargs.h>
#endif
-/* VARARGS */
-#ifdef USE_STDARG
-int
-asprintf (char **buf, const char *fmt, ...)
-#else
int
-asprintf (buf, fmt, va_alist)
- char **buf;
- const char *fmt;
- va_dcl
-#endif
+asprintf VPARAMS ((char **buf, const char *fmt, ...))
{
int status;
- va_list ap;
-#ifdef USE_STDARG
- va_start (ap, fmt);
-#else
- va_start (ap);
-#endif
+ VA_OPEN (ap, fmt);
+ VA_FIXEDARG (ap, char **, buf);
+ VA_FIXEDARG (ap, const char *, fmt);
status = vasprintf (buf, fmt, ap);
- va_end (ap);
+ VA_CLOSE (ap);
return status;
}
diff --git a/libiberty/vasprintf.c b/libiberty/vasprintf.c
index c34585d0498..32faa84a4a2 100644
--- a/libiberty/vasprintf.c
+++ b/libiberty/vasprintf.c
@@ -28,7 +28,9 @@ Boston, MA 02111-1307, USA. */
#include <varargs.h>
#endif
#include <stdio.h>
+#ifdef HAVE_STRING_H
#include <string.h>
+#endif
#ifdef HAVE_STDLIB_H
#include <stdlib.h>
#else
@@ -142,29 +144,22 @@ vasprintf (result, format, args)
}
#ifdef TEST
-static void checkit PARAMS ((const char *, ...));
-
-static void
-checkit VPARAMS ((const char* format, ...))
+static void ATTRIBUTE_PRINTF_1
+checkit VPARAMS ((const char *format, ...))
{
- va_list args;
char *result;
-#ifndef ANSI_PROTOTYPES
- const char *format;
-#endif
-
- VA_START (args, format);
-
-#ifndef ANSI_PROTOTYPES
- format = va_arg (args, const char *);
-#endif
-
+ VA_OPEN (args, format);
+ VA_FIXEDARG (args, const char *, format);
vasprintf (&result, format, args);
+ VA_CLOSE (args);
+
if (strlen (result) < (size_t) global_total_width)
printf ("PASS: ");
else
printf ("FAIL: ");
printf ("%d %s\n", global_total_width, result);
+
+ free (result);
}
extern int main PARAMS ((void));