summaryrefslogtreecommitdiff
path: root/gdb/findvar.c
diff options
context:
space:
mode:
authorKevin Buettner <kevinb@redhat.com>2000-03-02 06:50:50 +0000
committerKevin Buettner <kevinb@redhat.com>2000-03-02 06:50:50 +0000
commitbddf6eb27c433803e01cb84c1f44ed2f0a092562 (patch)
treec4156320619a04af497d1eaa99d0ddf5e1d1a554 /gdb/findvar.c
parenta7896a9c9ecdfad962e72f710d3f4092075bcaef (diff)
downloadgdb-bddf6eb27c433803e01cb84c1f44ed2f0a092562.tar.gz
Fixes for extract_floating() and store_floating().
Diffstat (limited to 'gdb/findvar.c')
-rw-r--r--gdb/findvar.c21
1 files changed, 8 insertions, 13 deletions
diff --git a/gdb/findvar.c b/gdb/findvar.c
index 9c8e313ab57..98322e014e4 100644
--- a/gdb/findvar.c
+++ b/gdb/findvar.c
@@ -267,13 +267,11 @@ store_address (addr, len, val)
dirty work. */
DOUBLEST
-extract_floating (addr, len)
- PTR addr;
- int len;
+extract_floating (void *addr, int len)
{
DOUBLEST dretval;
- if (len == sizeof (float))
+ if (len * TARGET_CHAR_BIT == TARGET_FLOAT_BIT)
{
if (HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT)
{
@@ -285,7 +283,7 @@ extract_floating (addr, len)
else
floatformat_to_doublest (TARGET_FLOAT_FORMAT, addr, &dretval);
}
- else if (len == sizeof (double))
+ else if (len * TARGET_CHAR_BIT == TARGET_DOUBLE_BIT)
{
if (HOST_DOUBLE_FORMAT == TARGET_DOUBLE_FORMAT)
{
@@ -297,7 +295,7 @@ extract_floating (addr, len)
else
floatformat_to_doublest (TARGET_DOUBLE_FORMAT, addr, &dretval);
}
- else if (len == sizeof (DOUBLEST))
+ else if (len * TARGET_CHAR_BIT == TARGET_LONG_DOUBLE_BIT)
{
if (HOST_LONG_DOUBLE_FORMAT == TARGET_LONG_DOUBLE_FORMAT)
{
@@ -322,12 +320,9 @@ extract_floating (addr, len)
}
void
-store_floating (addr, len, val)
- PTR addr;
- int len;
- DOUBLEST val;
+store_floating (void *addr, int len, DOUBLEST val)
{
- if (len == sizeof (float))
+ if (len * TARGET_CHAR_BIT == TARGET_FLOAT_BIT)
{
if (HOST_FLOAT_FORMAT == TARGET_FLOAT_FORMAT)
{
@@ -338,7 +333,7 @@ store_floating (addr, len, val)
else
floatformat_from_doublest (TARGET_FLOAT_FORMAT, &val, addr);
}
- else if (len == sizeof (double))
+ else if (len * TARGET_CHAR_BIT == TARGET_DOUBLE_BIT)
{
if (HOST_DOUBLE_FORMAT == TARGET_DOUBLE_FORMAT)
{
@@ -349,7 +344,7 @@ store_floating (addr, len, val)
else
floatformat_from_doublest (TARGET_DOUBLE_FORMAT, &val, addr);
}
- else if (len == sizeof (DOUBLEST))
+ else if (len * TARGET_CHAR_BIT == TARGET_LONG_DOUBLE_BIT)
{
if (HOST_LONG_DOUBLE_FORMAT == TARGET_LONG_DOUBLE_FORMAT)
memcpy (addr, &val, sizeof (val));