This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[PATCH] gdb/doublest.c: Avoid calling ldfrexp if long double is double.
- From: Will Newton <will dot newton at linaro dot org>
- To: gdb-patches at sourceware dot org
- Cc: patches at linaro dot org
- Date: Fri, 07 Jun 2013 19:39:05 +0100
- Subject: [PATCH] gdb/doublest.c: Avoid calling ldfrexp if long double is double.
There's no need to call ldfrexp if long double is the same size
as double, the standard frexp will be faster and more accurate.
This fixes a failure in ldbl_308.exp on ARM, where long double
is the same size as double.
gdb/ChangeLog:
2013-06-07 Will Newton <will.newton@linaro.org>
* doublest.c (convert_doublest_to_floatformat): If long
double is the same size as double call frexp instead of
ldfrexp.
---
gdb/doublest.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/gdb/doublest.c b/gdb/doublest.c
index 9ddc7a6..4bc0bd6 100644
--- a/gdb/doublest.c
+++ b/gdb/doublest.c
@@ -466,7 +466,10 @@ convert_doublest_to_floatformat (CONST struct floatformat *fmt,
}
#ifdef HAVE_LONG_DOUBLE
- mant = ldfrexp (dfrom, &exponent);
+ if (sizeof (long double) > sizeof (double))
+ mant = ldfrexp (dfrom, &exponent);
+ else
+ mant = frexp (dfrom, &exponent);
#else
mant = frexp (dfrom, &exponent);
#endif
--
1.8.1.4