aboutsummaryrefslogtreecommitdiff
path: root/libiberty/vasprintf.c
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1998-02-22 09:53:40 -0700
committerJeff Law <law@gcc.gnu.org>1998-02-22 09:53:40 -0700
commit5890bc92d41b13a99c7a3349daa9a2e2162b1ce2 (patch)
tree9e6cc52ea62e2e8f7e22e2dd2c053cdc0084a8f3 /libiberty/vasprintf.c
parent8b715b2abcb3991955cb800e07144f6d6b7c6595 (diff)
downloadgcc-5890bc92d41b13a99c7a3349daa9a2e2162b1ce2.zip
gcc-5890bc92d41b13a99c7a3349daa9a2e2162b1ce2.tar.gz
gcc-5890bc92d41b13a99c7a3349daa9a2e2162b1ce2.tar.bz2
cplus-dem.c (gnu_special): Don't get confused by .<digits> strings that are not actually lengths.
* cplus-dem.c (gnu_special): Don't get confused by .<digits> strings that are not actually lengths. * config/mh-cygwin32: remove vasprintf.o from EXTRA_OFILES since it gets built automatically * vasprintf.c (int_vasprintf): Increase buffer size for float/double values. From-SVN: r18171
Diffstat (limited to 'libiberty/vasprintf.c')
-rw-r--r--libiberty/vasprintf.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libiberty/vasprintf.c b/libiberty/vasprintf.c
index 38e8468..da83db2 100644
--- a/libiberty/vasprintf.c
+++ b/libiberty/vasprintf.c
@@ -74,7 +74,7 @@ int_vasprintf (result, format, args)
}
while (strchr ("hlL", *p))
++p;
- /* Should be big enough for any format specifier except %s. */
+ /* Should be big enough for any format specifier except %s and floats. */
total_width += 30;
switch (*p)
{
@@ -93,6 +93,9 @@ int_vasprintf (result, format, args)
case 'g':
case 'G':
(void) va_arg (ap, double);
+ /* Since an ieee double can have an exponent of 307, we'll
+ make the buffer wide enough to cover the gross case. */
+ total_width += 307;
break;
case 's':
total_width += strlen (va_arg (ap, char *));