+2014-01-21 Tom Tromey <tromey@redhat.com>
+
+ * ansidecl.h (ANSI_PROTOTYPES, PTRCONST, LONG_DOUBLE, PARAMS)
+ (VPARAMS, VA_START, VA_OPEN, VA_CLOSE, VA_FIXEDARG, CONST)
+ (VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID, AND, DOTS)
+ (NOARGS): Don't define.
+ * libiberty.h (expandargv, writeargv): Don't use PARAMS.
+
2014-01-09 Tom Tromey <tromey@redhat.com>
* gdbm.h: Remove.
/* ANSI and traditional C compatability macros
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010
+ 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2013
Free Software Foundation, Inc.
This file is part of the GNU C Library.
Macro ANSI C definition Traditional C definition
----- ---- - ---------- ----------- - ----------
- ANSI_PROTOTYPES 1 not defined
PTR `void *' `char *'
- PTRCONST `void *const' `char *'
- LONG_DOUBLE `long double' `double'
const not defined `'
volatile not defined `'
signed not defined `'
- VA_START(ap, var) va_start(ap, var) va_start(ap)
-
- Note that it is safe to write "void foo();" indicating a function
- with no return value, in all K+R compilers we have been able to test.
-
- For declaring functions with prototypes, we also provide these:
-
- PARAMS ((prototype))
- -- for functions which take a fixed number of arguments. Use this
- when declaring the function. When defining the function, write a
- K+R style argument list. For example:
-
- char *strcpy PARAMS ((char *dest, char *source));
- ...
- char *
- strcpy (dest, source)
- char *dest;
- char *source;
- { ... }
-
-
- VPARAMS ((prototype, ...))
- -- for functions which take a variable number of arguments. Use
- PARAMS to declare the function, VPARAMS to define it. For example:
-
- int printf PARAMS ((const char *format, ...));
- ...
- int
- printf VPARAMS ((const char *format, ...))
- {
- ...
- }
-
- For writing functions which take variable numbers of arguments, we
- also provide the VA_OPEN, VA_CLOSE, and VA_FIXEDARG macros. These
- hide the differences between K+R <varargs.h> and C89 <stdarg.h> more
- thoroughly than the simple VA_START() macro mentioned above.
-
- VA_OPEN and VA_CLOSE are used *instead of* va_start and va_end.
- Immediately after VA_OPEN, put a sequence of VA_FIXEDARG calls
- corresponding to the list of fixed arguments. Then use va_arg
- normally to get the variable arguments, or pass your va_list object
- around. You do not declare the va_list yourself; VA_OPEN does it
- for you.
-
- Here is a complete example:
-
- int
- printf VPARAMS ((const char *format, ...))
- {
- int result;
-
- VA_OPEN (ap, format);
- VA_FIXEDARG (ap, const char *, format);
-
- result = vfprintf (stdout, format, ap);
- VA_CLOSE (ap);
-
- return result;
- }
-
-
- You can declare variables either before or after the VA_OPEN,
- VA_FIXEDARG sequence. Also, VA_OPEN and VA_CLOSE are the beginning
- and end of a block. They must appear at the same nesting level,
- and any variables declared after VA_OPEN go out of scope at
- VA_CLOSE. Unfortunately, with a K+R compiler, that includes the
- argument list. You can have multiple instances of VA_OPEN/VA_CLOSE
- pairs in a single function in case you need to traverse the
- argument list more than once.
For ease of writing code which uses GCC extensions but needs to be
portable to other compilers, we provide the GCC_VERSION macro that
simplifies testing __GNUC__ and __GNUC_MINOR__ together, and various
wrappers around __attribute__. Also, __extension__ will be #defined
- to nothing if it doesn't work. See below.
-
- This header also defines a lot of obsolete macros:
- CONST, VOLATILE, SIGNED, PROTO, EXFUN, DEFUN, DEFUN_VOID,
- AND, DOTS, NOARGS. Don't use them. */
+ to nothing if it doesn't work. See below. */
#ifndef _ANSIDECL_H
#define _ANSIDECL_H 1
C++ compilers, does not define __STDC__, though it acts as if this
was so. (Verified versions: 5.7, 6.2, 6.3, 6.5) */
-#define ANSI_PROTOTYPES 1
#define PTR void *
-#define PTRCONST void *const
-#define LONG_DOUBLE long double
-/* PARAMS is often defined elsewhere (e.g. by libintl.h), so wrap it in
- a #ifndef. */
-#ifndef PARAMS
-#define PARAMS(ARGS) ARGS
-#endif
-
-#define VPARAMS(ARGS) ARGS
-#define VA_START(VA_LIST, VAR) va_start(VA_LIST, VAR)
-
-/* variadic function helper macros */
-/* "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_FIXEDARG(AP, T, N) struct Qdmy
-
#undef const
#undef volatile
#undef signed
# endif
#endif
-/* These are obsolete. Do not use. */
-#ifndef IN_GCC
-#define CONST const
-#define VOLATILE volatile
-#define SIGNED signed
-
-#define PROTO(type, name, arglist) type name arglist
-#define EXFUN(name, proto) name proto
-#define DEFUN(name, arglist, args) name(args)
-#define DEFUN_VOID(name) name(void)
-#define AND ,
-#define DOTS , ...
-#define NOARGS void
-#endif /* ! IN_GCC */
-
#else /* Not ANSI C. */
-#undef ANSI_PROTOTYPES
#define PTR char *
-#define PTRCONST PTR
-#define LONG_DOUBLE double
-
-#define PARAMS(args) ()
-#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_FIXEDARG(AP, TYPE, NAME) TYPE NAME = va_arg(AP, TYPE)
/* some systems define these in header files for non-ansi mode */
#undef const
#define signed
#define inline
-#ifndef IN_GCC
-#define CONST
-#define VOLATILE
-#define SIGNED
-
-#define PROTO(type, name, arglist) type name ()
-#define EXFUN(name, proto) name()
-#define DEFUN(name, arglist, args) name arglist args;
-#define DEFUN_VOID(name) name()
-#define AND ;
-#define DOTS
-#define NOARGS
-#endif /* ! IN_GCC */
-
#endif /* ANSI C. */
/* Define macros for some gcc attributes. This permits us to use the
/* Function declarations for libiberty.
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ 2006, 2007, 2008, 2009, 2010, 2011, 2013 Free Software Foundation, Inc.
Note - certain prototypes declared in this header file are for
functions whoes implementation copyright does not belong to the
/* Expand "@file" arguments in argv. */
-extern void expandargv PARAMS ((int *, char ***));
+extern void expandargv (int *, char ***);
/* Write argv to an @-file, inserting necessary quoting. */
-extern int writeargv PARAMS ((char **, FILE *));
+extern int writeargv (char **, FILE *);
/* Return the number of elements in argv. */
+2014-01-21 Tom Tromey <tromey@redhat.com>
+
+ * _doprint.c (checkit): Use stdarg, not VA_* macros.
+ * asprintf.c (asprintf): Use stdarg, not VA_* macros.
+ * concat.c (concat_length, concat_copy, concat_copy2, concat)
+ (reconcat): Use stdarg, not VA_* macros.
+ * snprintf.c (snprintf): Use stdarg, not VA_* macros.
+ * vasprintf.c (checkit): Use stdarg, not VA_* macros.
+ * vsnprintf.c (checkit): Use stdarg, not VA_* macros.
+
2014-01-06 Mike Frysinger <vapier@gentoo.org>
PR other/56780
checkit (const char* format, ...)
{
int result;
- VA_OPEN (args, format);
- VA_FIXEDARG (args, char *, format);
+ va_list args;
+ va_start (args, format);
result = _doprnt (format, args, stdout);
- VA_CLOSE (args);
+ va_end (args);
return result;
}
/* Like sprintf but provides a pointer to malloc'd storage, which must
be freed by the caller.
- Copyright (C) 1997, 2003 Free Software Foundation, Inc.
+ Copyright (C) 1997, 2003, 2013 Free Software Foundation, Inc.
Contributed by Cygnus Solutions.
This file is part of the libiberty library.
asprintf (char **buf, const char *fmt, ...)
{
int status;
- VA_OPEN (ap, fmt);
- VA_FIXEDARG (ap, char **, buf);
- VA_FIXEDARG (ap, const char *, fmt);
+ va_list ap;
+ va_start (ap, fmt);
status = vasprintf (buf, fmt, ap);
- VA_CLOSE (ap);
+ va_end (ap);
return status;
}
/* Concatenate variable number of strings.
- Copyright (C) 1991, 1994, 2001, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1994, 2001, 2011, 2013 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support
This file is part of the libiberty library.
concat_length (const char *first, ...)
{
unsigned long length;
+ va_list args;
- VA_OPEN (args, first);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
length = vconcat_length (first, args);
- VA_CLOSE (args);
+ va_end (args);
return length;
}
concat_copy (char *dst, const char *first, ...)
{
char *save_dst;
+ va_list args;
- VA_OPEN (args, first);
- VA_FIXEDARG (args, char *, dst);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
vconcat_copy (dst, first, args);
save_dst = dst; /* With K&R C, dst goes out of scope here. */
- VA_CLOSE (args);
+ va_end (args);
return save_dst;
}
char *
concat_copy2 (const char *first, ...)
{
- VA_OPEN (args, first);
- VA_FIXEDARG (args, const char *, first);
+ va_list args;
+ va_start (args, first);
vconcat_copy (libiberty_concat_ptr, first, args);
- VA_CLOSE (args);
+ va_end (args);
return libiberty_concat_ptr;
}
concat (const char *first, ...)
{
char *newstr;
+ va_list args;
/* First compute the size of the result and get sufficient memory. */
- VA_OPEN (args, first);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
newstr = XNEWVEC (char, vconcat_length (first, args) + 1);
- VA_CLOSE (args);
+ va_end (args);
/* Now copy the individual pieces to the result string. */
- VA_OPEN (args, first);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
vconcat_copy (newstr, first, args);
- VA_CLOSE (args);
+ va_end (args);
return newstr;
}
reconcat (char *optr, const char *first, ...)
{
char *newstr;
+ va_list args;
/* First compute the size of the result and get sufficient memory. */
- VA_OPEN (args, first);
- VA_FIXEDARG (args, char *, optr);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
newstr = XNEWVEC (char, vconcat_length (first, args) + 1);
- VA_CLOSE (args);
+ va_end (args);
/* Now copy the individual pieces to the result string. */
- VA_OPEN (args, first);
- VA_FIXEDARG (args, char *, optr);
- VA_FIXEDARG (args, const char *, first);
+ va_start (args, first);
vconcat_copy (newstr, first, args);
if (optr) /* Done before VA_CLOSE so optr stays in scope for K&R C. */
free (optr);
- VA_CLOSE (args);
+ va_end (args);
return newstr;
}
/* Implement the snprintf function.
- Copyright (C) 2003, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2011, 2013 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This library is free
snprintf (char *s, size_t n, const char *format, ...)
{
int result;
- VA_OPEN (ap, format);
- VA_FIXEDARG (ap, char *, s);
- VA_FIXEDARG (ap, size_t, n);
- VA_FIXEDARG (ap, const char *, format);
+ va_list ap;
+ va_start (ap, format);
result = vsnprintf (s, n, format, ap);
- VA_CLOSE (ap);
+ va_end (ap);
return result;
}
/* Like vsprintf but provides a pointer to malloc'd storage, which must
be freed by the caller.
- Copyright (C) 1994, 2003, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1994, 2003, 2011, 2013 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
checkit (const char *format, ...)
{
char *result;
- VA_OPEN (args, format);
- VA_FIXEDARG (args, const char *, format);
+ va_list args;
+ va_start (args, format);
vasprintf (&result, format, args);
- VA_CLOSE (args);
+ va_end (args);
if (strlen (result) < (size_t) global_total_width)
printf ("PASS: ");
/* Implement the vsnprintf function.
- Copyright (C) 2003, 2004, 2005, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2011, 2013 Free Software Foundation, Inc.
Written by Kaveh R. Ghazi <ghazi@caip.rutgers.edu>.
This file is part of the libiberty library. This library is free
checkit (char *s, size_t n, const char *format, ...)
{
int result;
- VA_OPEN (ap, format);
- VA_FIXEDARG (ap, char *, s);
- VA_FIXEDARG (ap, size_t, n);
- VA_FIXEDARG (ap, const char *, format);
+ va_list ap;
+ va_start (ap, format);
result = vsnprintf (s, n, format, ap);
- VA_CLOSE (ap);
+ va_end (ap);
return result;
}