aboutsummaryrefslogtreecommitdiff
path: root/gcc/dwarfout.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/dwarfout.c')
-rw-r--r--gcc/dwarfout.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c
index 80475c6..bf46459 100644
--- a/gcc/dwarfout.c
+++ b/gcc/dwarfout.c
@@ -1421,7 +1421,16 @@ fundamental_type_code (type)
}
if (TYPE_PRECISION (type) == DOUBLE_TYPE_SIZE)
- return FT_dbl_prec_float;
+ {
+ /* On the SH, when compiling with -m3e or -m4-single-only, both
+ float and double are 32 bits. But since the debugger doesn't
+ know about the subtarget, it always thinks double is 64 bits.
+ So we have to tell the debugger that the type is float to
+ make the output of the 'print' command etc. readable. */
+ if (DOUBLE_TYPE_SIZE == FLOAT_TYPE_SIZE && FLOAT_TYPE_SIZE == 32)
+ return return FT_float;
+ return FT_dbl_prec_float;
+ }
if (TYPE_PRECISION (type) == FLOAT_TYPE_SIZE)
return FT_float;