summary refs log tree commit diff
path: root/stdio-common/vfprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'stdio-common/vfprintf.c')
-rw-r--r--stdio-common/vfprintf.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
index 263b0238c7..dfaf4191c7 100644
--- a/stdio-common/vfprintf.c
+++ b/stdio-common/vfprintf.c
@@ -180,8 +180,12 @@ extern void __funlockfile (FILE *);
     }									      \
   while (0)
 
-/* For handling long_double and longlong we use the same flag.  */
-#ifndef is_longlong
+/* For handling long_double and longlong we use the same flag.  If
+   `long' and `long long' are effectively the same type define it to
+   zero.  */
+#if LONG_MAX == LONG_LONG_MAX
+# define is_longlong 0
+#else
 # define is_longlong is_long_double
 #endif
 
@@ -1228,17 +1232,17 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
       JUMP (*++f, step4_jumps);
 
     LABEL (mod_size_t):
-      is_longlong = sizeof (size_t) > sizeof (unsigned long int);
+      is_long_double = sizeof (size_t) > sizeof (unsigned long int);
       is_long = sizeof (size_t) > sizeof (unsigned int);
       JUMP (*++f, step4_jumps);
 
     LABEL (mod_ptrdiff_t):
-      is_longlong = sizeof (ptrdiff_t) > sizeof (unsigned long int);
+      is_long_double = sizeof (ptrdiff_t) > sizeof (unsigned long int);
       is_long = sizeof (ptrdiff_t) > sizeof (unsigned int);
       JUMP (*++f, step4_jumps);
 
     LABEL (mod_intmax_t):
-      is_longlong = sizeof (intmax_t) > sizeof (unsigned long int);
+      is_long_double = sizeof (intmax_t) > sizeof (unsigned long int);
       is_long = sizeof (intmax_t) > sizeof (unsigned int);
       JUMP (*++f, step4_jumps);