about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--stdio-common/vfprintf.c23
-rw-r--r--sysdeps/unix/sysv/linux/preadv.c6
-rw-r--r--sysdeps/unix/sysv/linux/pwritev.c6
4 files changed, 17 insertions, 20 deletions
diff --git a/ChangeLog b/ChangeLog
index 200c8187d1..fe0a899819 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2009-04-09  Ulrich Drepper  <drepper@redhat.com>
 
+	* stdio-common/vfprintf.c (vfprintf): Slightly more compact code.
+
 	* sysdeps/unix/sysv/linux/preadv.c: Avoid prototype for static
 	function if it is not defined.  Add some necessary casts.
 	* sysdeps/unix/sysv/linux/pwritev.c: Likewise.
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index 5d5bb5e578..819865f61e 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -1,5 +1,4 @@
-/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008
-   Free Software Foundation, Inc.
+/* Copyright (C) 1991-2008, 2009   Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -1743,13 +1742,21 @@ do_positional:
 	  args_value[cnt].mem = va_arg (ap_save, type);			      \
 	  break
 
-	T (PA_CHAR, pa_int, int); /* Promoted.  */
 	T (PA_WCHAR, pa_wchar, wint_t);
-	T (PA_INT|PA_FLAG_SHORT, pa_int, int); /* Promoted.  */
+	case PA_CHAR:				/* Promoted.  */
+	case PA_INT|PA_FLAG_SHORT:		/* Promoted.  */
+#if LONG_MAX == INT_MAX
+	case PA_INT|PA_FLAG_LONG:
+#endif
 	T (PA_INT, pa_int, int);
-	T (PA_INT|PA_FLAG_LONG, pa_long_int, long int);
+#if LONG_MAX == LONG_LONG_MAX
+	case PA_INT|PA_FLAG_LONG:
+#endif
 	T (PA_INT|PA_FLAG_LONG_LONG, pa_long_long_int, long long int);
-	T (PA_FLOAT, pa_double, double);	/* Promoted.  */
+#if LONG_MAX != INT_MAX && LONG_MAX != LONG_LONG_MAX
+# error "he?"
+#endif
+	case PA_FLOAT:				/* Promoted.  */
 	T (PA_DOUBLE, pa_double, double);
 	case PA_DOUBLE|PA_FLAG_LONG_DOUBLE:
 	  if (__ldbl_is_dbl)
@@ -1760,8 +1767,8 @@ do_positional:
 	  else
 	    args_value[cnt].pa_long_double = va_arg (ap_save, long double);
 	  break;
-	T (PA_STRING, pa_string, const char *);
-	T (PA_WSTRING, pa_wstring, const wchar_t *);
+	case PA_STRING:				/* All pointers are the same */
+	case PA_WSTRING:			/* All pointers are the same */
 	T (PA_POINTER, pa_pointer, void *);
 #undef T
 	default:
diff --git a/sysdeps/unix/sysv/linux/preadv.c b/sysdeps/unix/sysv/linux/preadv.c
index 8c89d9200e..0d4a6c3803 100644
--- a/sysdeps/unix/sysv/linux/preadv.c
+++ b/sysdeps/unix/sysv/linux/preadv.c
@@ -29,12 +29,6 @@
 #include <sys/syscall.h>
 #include <kernel-features.h>
 
-#ifdef __x86_64__
-#define __NR_preadv				295
-#elif defined __i386__
-#define __NR_preadv		333
-#endif
-
 
 #ifndef PREADV
 # define PREADV preadv
diff --git a/sysdeps/unix/sysv/linux/pwritev.c b/sysdeps/unix/sysv/linux/pwritev.c
index 1916abe485..5c30eae51f 100644
--- a/sysdeps/unix/sysv/linux/pwritev.c
+++ b/sysdeps/unix/sysv/linux/pwritev.c
@@ -29,12 +29,6 @@
 #include <sys/syscall.h>
 #include <kernel-features.h>
 
-#ifdef __x86_64__
-#define __NR_pwritev				296
-#elif defined __i386__
-#define __NR_pwritev		334
-#endif
-
 
 #ifndef PWRITEV
 # define PWRITEV pwritev