This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Patch: remove K&R version of gas/messages.c functions


Hi,

as we require an ISO C compiler to build bfd and gas, we could cleanup gas/messages.c which
contained alternate definition for K&R compiler.

Ok to commit ?

Tristan.

gas/
2010-06-02  Tristan Gingold  <gingold@adacore.com>

	* as.h: Remove conditionnal definition of HAVE_STDARG_H,
	USE_STDARG, va_alist, va_dcl, va_list, va_start, va_end.
	Remove conditionnal inclusion of stdarg.h and varargs.h.
	Assume ISO C.
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.in: Remove stdarg.h and varargs.h from
	AC_CHECK_HEADERS list.
	* messages.c (as_tsktsk): Remove non ISO C version.
	(as_warn, as_warn_where, as_bad, as_bad_where, as_fatal): Ditto.

diff --git a/gas/as.h b/gas/as.h
index c670536..2b2562e 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -38,19 +38,6 @@
 
 #include "alloca-conf.h"
 
-/* Prefer varargs for non-ANSI compiler, since some will barf if the
-   ellipsis definition is used with a no-arguments declaration.  */
-#if defined (HAVE_VARARGS_H) && !defined (__STDC__)
-#undef HAVE_STDARG_H
-#endif
-
-#if defined (HAVE_STDARG_H)
-#define USE_STDARG
-#endif
-#if !defined (USE_STDARG) && defined (HAVE_VARARGS_H)
-#define USE_VARARGS
-#endif
-
 /* Now, tend to the rest of the configuration.  */
 
 /* System include files first...  */
@@ -77,22 +64,7 @@
 #include <errno.h>
 #endif
 
-#ifdef USE_STDARG
 #include <stdarg.h>
-#endif
-
-#ifdef USE_VARARGS
-#include <varargs.h>
-#endif
-
-#if !defined (USE_STDARG) && !defined (USE_VARARGS)
-/* Roll our own.  */
-#define va_alist REST
-#define va_dcl
-typedef int * va_list;
-#define va_start(ARGS)	ARGS = &REST
-#define va_end(ARGS)
-#endif
 
 #include "getopt.h"
 /* The first getopt value for machine-independent long options.
@@ -458,7 +430,6 @@ struct _pseudo_type
 
 typedef struct _pseudo_type pseudo_typeS;
 
-#ifdef USE_STDARG
 #if (__GNUC__ >= 2) && !defined(VMS)
 /* for use with -Wformat */
 
@@ -485,13 +456,6 @@ typedef struct _pseudo_type pseudo_typeS;
 
 #endif /* __GNUC__ < 2 || defined(VMS) */
 
-#else /* ! USE_STDARG */
-
-#define PRINTF_LIKE(FCN)	void FCN ()
-#define PRINTF_WHERE_LIKE(FCN)	void FCN ()
-
-#endif /* ! USE_STDARG */
-
 PRINTF_LIKE (as_bad);
 PRINTF_LIKE (as_fatal) ATTRIBUTE_NORETURN;
 PRINTF_LIKE (as_tsktsk);
diff --git a/gas/configure.in b/gas/configure.in
index 267b987..4fbf292 100644
--- a/gas/configure.in
+++ b/gas/configure.in
@@ -620,7 +620,7 @@ AM_MAINTAINER_MODE
 AM_CONDITIONAL(GENINSRC_NEVER, false)
 AC_EXEEXT
 
-AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h limits.h time.h sys/stat.h)
+AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h errno.h sys/types.h limits.h time.h sys/stat.h)
 
 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
 # people who are not cross-compiling but are compiling cross-assemblers.
diff --git a/gas/messages.c b/gas/messages.c
index 396d364..9ea1bce 100644
--- a/gas/messages.c
+++ b/gas/messages.c
@@ -122,7 +122,6 @@ as_show_where (void)
    Please explain in string (which may have '\n's) what recovery was
    done.  */
 
-#ifdef USE_STDARG
 void
 as_tsktsk (const char *format, ...)
 {
@@ -134,21 +133,6 @@ as_tsktsk (const char *format, ...)
   va_end (args);
   (void) putc ('\n', stderr);
 }
-#else
-void
-as_tsktsk (format, va_alist)
-     const char *format;
-     va_dcl
-{
-  va_list args;
-
-  as_show_where ();
-  va_start (args);
-  vfprintf (stderr, format, args);
-  va_end (args);
-  (void) putc ('\n', stderr);
-}
-#endif /* not NO_STDARG */
 
 /* The common portion of as_warn and as_warn_where.  */
 
@@ -177,7 +161,6 @@ as_warn_internal (char *file, unsigned int line, char *buffer)
    Please explain in string (which may have '\n's) what recovery was
    done.  */
 
-#ifdef USE_STDARG
 void
 as_warn (const char *format, ...)
 {
@@ -192,30 +175,11 @@ as_warn (const char *format, ...)
       as_warn_internal ((char *) NULL, 0, buffer);
     }
 }
-#else
-void
-as_warn (format, va_alist)
-     const char *format;
-     va_dcl
-{
-  va_list args;
-  char buffer[2000];
-
-  if (!flag_no_warnings)
-    {
-      va_start (args);
-      vsnprintf (buffer, sizeof (buffer), format, args);
-      va_end (args);
-      as_warn_internal ((char *) NULL, 0, buffer);
-    }
-}
-#endif /* not NO_STDARG */
 
 /* Like as_bad but the file name and line number are passed in.
    Unfortunately, we have to repeat the function in order to handle
    the varargs correctly and portably.  */
 
-#ifdef USE_STDARG
 void
 as_warn_where (char *file, unsigned int line, const char *format, ...)
 {
@@ -230,26 +194,6 @@ as_warn_where (char *file, unsigned int line, const char *format, ...)
       as_warn_internal (file, line, buffer);
     }
 }
-#else
-void
-as_warn_where (file, line, format, va_alist)
-     char *file;
-     unsigned int line;
-     const char *format;
-     va_dcl
-{
-  va_list args;
-  char buffer[2000];
-
-  if (!flag_no_warnings)
-    {
-      va_start (args);
-      vsnprintf (buffer, sizeof (buffer), format, args);
-      va_end (args);
-      as_warn_internal (file, line, buffer);
-    }
-}
-#endif /* not NO_STDARG */
 
 /* The common portion of as_bad and as_bad_where.  */
 
@@ -278,7 +222,6 @@ as_bad_internal (char *file, unsigned int line, char *buffer)
    Please explain in string (which may have '\n's) what recovery was
    done.  */
 
-#ifdef USE_STDARG
 void
 as_bad (const char *format, ...)
 {
@@ -292,28 +235,10 @@ as_bad (const char *format, ...)
   as_bad_internal ((char *) NULL, 0, buffer);
 }
 
-#else
-void
-as_bad (format, va_alist)
-     const char *format;
-     va_dcl
-{
-  va_list args;
-  char buffer[2000];
-
-  va_start (args);
-  vsnprintf (buffer, sizeof (buffer), format, args);
-  va_end (args);
-
-  as_bad_internal ((char *) NULL, 0, buffer);
-}
-#endif /* not NO_STDARG */
-
 /* Like as_bad but the file name and line number are passed in.
    Unfortunately, we have to repeat the function in order to handle
    the varargs correctly and portably.  */
 
-#ifdef USE_STDARG
 void
 as_bad_where (char *file, unsigned int line, const char *format, ...)
 {
@@ -327,31 +252,11 @@ as_bad_where (char *file, unsigned int line, const char *format, ...)
   as_bad_internal (file, line, buffer);
 }
 
-#else
-void
-as_bad_where (file, line, format, va_alist)
-     char *file;
-     unsigned int line;
-     const char *format;
-     va_dcl
-{
-  va_list args;
-  char buffer[2000];
-
-  va_start (args);
-  vsnprintf (buffer, sizeof (buffer), format, args);
-  va_end (args);
-
-  as_bad_internal (file, line, buffer);
-}
-#endif /* not NO_STDARG */
-
 /* Send to stderr a string as a fatal message, and print location of
    error in input file(s).
    Please only use this for when we DON'T have some recovery action.
    It xexit()s with a warning status.  */
 
-#ifdef USE_STDARG
 void
 as_fatal (const char *format, ...)
 {
@@ -369,25 +274,6 @@ as_fatal (const char *format, ...)
     unlink_if_ordinary (out_file_name);
   xexit (EXIT_FAILURE);
 }
-#else
-void
-as_fatal (format, va_alist)
-     char *format;
-     va_dcl
-{
-  va_list args;
-
-  as_show_where ();
-  va_start (args);
-  fprintf (stderr, _("Fatal error: "));
-  vfprintf (stderr, format, args);
-  (void) putc ('\n', stderr);
-  va_end (args);
-  if (out_file_name != NULL)
-    unlink_if_ordinary (out_file_name);
-  xexit (EXIT_FAILURE);
-}
-#endif /* not NO_STDARG */
 
 /* Indicate assertion failure.
    Arguments: Filename, line number, optional function name.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]