aboutsummaryrefslogtreecommitdiff
path: root/gdb/c-exp.y
diff options
context:
space:
mode:
authorAlexandre Oliva <aoliva@redhat.com>2006-02-14 18:45:14 +0000
committerAlexandre Oliva <aoliva@redhat.com>2006-02-14 18:45:14 +0000
commit96c1eda247c7846f4bbd32d65db6819baefad08b (patch)
tree9bc74063c6c31a5947f17bf6da9c2b5c54d76434 /gdb/c-exp.y
parent92dd43fa3bc92e0a97408eaa406143c41460581c (diff)
downloadgdb-96c1eda247c7846f4bbd32d65db6819baefad08b.zip
gdb-96c1eda247c7846f4bbd32d65db6819baefad08b.tar.gz
gdb-96c1eda247c7846f4bbd32d65db6819baefad08b.tar.bz2
* doublest.h (DOUBLEST): Use long double only if we can scan
it in. Undefine HAVE_LONG_DOUBLE otherwise. (DOUBLEST_FORMAT): New. * c-exp.y (parse_number): Use it. * jv-exp.y (parse_number): Likewise. * objc-exp.y (parse_number): Likewise. * p-exp.y (parse_number): Likewise. * varobj.c (free_variable): Silence type-punning warnings. * tui/tui-data.h (struct tui_list): Change type of list member. * tui/tui-data.c: Remove no-longer-needed type casts. (source_windows): Silence type-punning warnings. * tui/tui-stack.c, tui/tui-win.c, tui/tui-winsource.c: Likewise.
Diffstat (limited to 'gdb/c-exp.y')
-rw-r--r--gdb/c-exp.y20
1 files changed, 2 insertions, 18 deletions
diff --git a/gdb/c-exp.y b/gdb/c-exp.y
index 8758a7d..b56613f 100644
--- a/gdb/c-exp.y
+++ b/gdb/c-exp.y
@@ -1080,24 +1080,8 @@ parse_number (p, len, parsed_float, putithere)
char saved_char = p[len];
p[len] = 0; /* null-terminate the token */
-
- if (sizeof (putithere->typed_val_float.dval) <= sizeof (float))
- num = sscanf (p, "%g%s", (float *) &putithere->typed_val_float.dval,s);
- else if (sizeof (putithere->typed_val_float.dval) <= sizeof (double))
- num = sscanf (p, "%lg%s", (double *) &putithere->typed_val_float.dval,s);
- else
- {
-#ifdef SCANF_HAS_LONG_DOUBLE
- num = sscanf (p, "%Lg%s", &putithere->typed_val_float.dval,s);
-#else
- /* Scan it into a double, then assign it to the long double.
- This at least wins with values representable in the range
- of doubles. */
- double temp;
- num = sscanf (p, "%lg%s", &temp,s);
- putithere->typed_val_float.dval = temp;
-#endif
- }
+ num = sscanf (p, DOUBLEST_FORMAT "%s",
+ &putithere->typed_val_float.dval, s);
p[len] = saved_char; /* restore the input stream */
if (num == 1)