mirror of git://gcc.gnu.org/git/gcc.git
re PR bootstrap/47736 (libquadmath build broken with pre-2.10 glibc)
PR bootstrap/47736 * configure.ac (HAVE_PRINTF_HOOKS): Test if printf_info struct has user field. * printf/quadmath-printf.c (quadmath_snprintf): Clear whole info field instead of setting individual fields to 0. Don't set info.user to -1. * configure: Regenerated. From-SVN: r170147
This commit is contained in:
parent
ce2ab24c22
commit
12967872c5
|
@ -1,5 +1,13 @@
|
||||||
2011-02-14 Jakub Jelinek <jakub@redhat.com>
|
2011-02-14 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
PR bootstrap/47736
|
||||||
|
* configure.ac (HAVE_PRINTF_HOOKS): Test if printf_info struct has
|
||||||
|
user field.
|
||||||
|
* printf/quadmath-printf.c (quadmath_snprintf): Clear whole info
|
||||||
|
field instead of setting individual fields to 0. Don't set info.user
|
||||||
|
to -1.
|
||||||
|
* configure: Regenerated.
|
||||||
|
|
||||||
* configure.ac (HAVE_HIDDEN_VISIBILITY): Test with -Werror in CFLAGS.
|
* configure.ac (HAVE_HIDDEN_VISIBILITY): Test with -Werror in CFLAGS.
|
||||||
* printf/printf_fp.c: Don't include <alloca.h>.
|
* printf/printf_fp.c: Don't include <alloca.h>.
|
||||||
* printf/quadmath-printf.h (_itoa): Redefine to __quadmath_itoa.
|
* printf/quadmath-printf.h (_itoa): Redefine to __quadmath_itoa.
|
||||||
|
|
|
@ -12555,6 +12555,7 @@ main ()
|
||||||
int pa_flt128 = register_printf_type (flt128_va);
|
int pa_flt128 = register_printf_type (flt128_va);
|
||||||
int mod_Q = register_printf_modifier (L"Q");
|
int mod_Q = register_printf_modifier (L"Q");
|
||||||
int res = register_printf_specifier ('f', flt128_printf_fp, flt128_ais);
|
int res = register_printf_specifier ('f', flt128_printf_fp, flt128_ais);
|
||||||
|
struct printf_info info = { .user = -1 };
|
||||||
|
|
||||||
;
|
;
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -241,6 +241,7 @@ extern int flt128_printf_fp (FILE *, const struct printf_info *, const void *con
|
||||||
int pa_flt128 = register_printf_type (flt128_va);
|
int pa_flt128 = register_printf_type (flt128_va);
|
||||||
int mod_Q = register_printf_modifier (L"Q");
|
int mod_Q = register_printf_modifier (L"Q");
|
||||||
int res = register_printf_specifier ('f', flt128_printf_fp, flt128_ais);
|
int res = register_printf_specifier ('f', flt128_printf_fp, flt128_ais);
|
||||||
|
struct printf_info info = { .user = -1 };
|
||||||
],
|
],
|
||||||
[quadmath_printf_hooks=yes],[quadmath_printf_hooks=no])
|
[quadmath_printf_hooks=yes],[quadmath_printf_hooks=no])
|
||||||
AC_MSG_RESULT($quadmath_printf_hooks)
|
AC_MSG_RESULT($quadmath_printf_hooks)
|
||||||
|
|
|
@ -121,15 +121,16 @@ quadmath_snprintf (char *str, size_t size, const char *format, ...)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/* Clear information structure. */
|
/* Clear information structure. */
|
||||||
info.alt = 0;
|
memset (&info, '\0', sizeof info);
|
||||||
|
/* info.alt = 0;
|
||||||
info.space = 0;
|
info.space = 0;
|
||||||
info.left = 0;
|
info.left = 0;
|
||||||
info.showsign = 0;
|
info.showsign = 0;
|
||||||
info.group = 0;
|
info.group = 0;
|
||||||
info.i18n = 0;
|
info.i18n = 0;
|
||||||
info.extra = 0;
|
info.extra = 0; */
|
||||||
info.pad = ' ';
|
info.pad = ' ';
|
||||||
info.wide = 0;
|
/* info.wide = 0; */
|
||||||
|
|
||||||
/* Check for spec modifiers. */
|
/* Check for spec modifiers. */
|
||||||
do
|
do
|
||||||
|
@ -180,7 +181,7 @@ quadmath_snprintf (char *str, size_t size, const char *format, ...)
|
||||||
va_start (ap, format);
|
va_start (ap, format);
|
||||||
|
|
||||||
/* Get the field width. */
|
/* Get the field width. */
|
||||||
info.width = 0;
|
/* info.width = 0; */
|
||||||
if (*format == '*')
|
if (*format == '*')
|
||||||
{
|
{
|
||||||
/* The field width is given in an argument.
|
/* The field width is given in an argument.
|
||||||
|
@ -213,11 +214,11 @@ quadmath_snprintf (char *str, size_t size, const char *format, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check for type modifiers. */
|
/* Check for type modifiers. */
|
||||||
info.is_long_double = 0;
|
/* info.is_long_double = 0;
|
||||||
info.is_short = 0;
|
info.is_short = 0;
|
||||||
info.is_long = 0;
|
info.is_long = 0;
|
||||||
info.is_char = 0;
|
info.is_char = 0;
|
||||||
info.user = -1;
|
info.user = 0; */
|
||||||
|
|
||||||
/* We require Q modifier. */
|
/* We require Q modifier. */
|
||||||
if (*format++ != 'Q')
|
if (*format++ != 'Q')
|
||||||
|
|
Loading…
Reference in New Issue