aboutsummaryrefslogtreecommitdiff
path: root/gdb/f-typeprint.c
diff options
context:
space:
mode:
authorPer Bothner <per@bothner.com>1995-11-30 02:32:29 +0000
committerPer Bothner <per@bothner.com>1995-11-30 02:32:29 +0000
commitbcbf388e993d206027da59f87014ca561ebdd6fc (patch)
treea8b686f6b38bff9aceb548ac1ea5465320c7f544 /gdb/f-typeprint.c
parent940d596798931962895918454d2ca6bd14b83b1b (diff)
downloadfsf-binutils-gdb-bcbf388e993d206027da59f87014ca561ebdd6fc.zip
fsf-binutils-gdb-bcbf388e993d206027da59f87014ca561ebdd6fc.tar.gz
fsf-binutils-gdb-bcbf388e993d206027da59f87014ca561ebdd6fc.tar.bz2
* f-typeprint.c, valarith.c, valprint.c, typeprint.c, eval.c:
Add check_typedef/CHECK_TYPEDEF as needed. * f-typeprint.c: Various cleaning up. * valarith.c (value_subscript): Also subscript bitstrings (for Chill). * typeprint.c (print_type_scalar): Also support TYPE_CODE_RANGE. * eval.c (evaluate_subexp_standard case OP_ARRAY): Implement support for labelled array tuples and ranges in powerset tuples. (init_array_element): New function.
Diffstat (limited to 'gdb/f-typeprint.c')
-rw-r--r--gdb/f-typeprint.c24
1 files changed, 9 insertions, 15 deletions
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index b090e0b..7a160bc 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -314,16 +314,7 @@ print_equivalent_f77_float_type (type, stream)
appropriate real. XLC stupidly outputs -12 as a type
for real when it really should be outputting -18 */
- switch (TYPE_LENGTH (type))
- {
- case 4:
- fprintf_filtered (stream, "real*4");
- break;
-
- case 8:
- fprintf_filtered(stream,"real*8");
- break;
- }
+ fprintf_filtered (stream, "real*%d", TYPE_LENGTH (type));
}
/* Print the name of the type (or the ultimate pointer target,
@@ -370,19 +361,23 @@ f_type_print_base (type, stream, show, level)
return;
}
+ if (TYPE_CODE (type) != TYPE_CODE_TYPEDEF)
+ CHECK_TYPEDEF (type);
+
switch (TYPE_CODE (type))
{
- case TYPE_CODE_ARRAY:
- f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
+ case TYPE_CODE_TYPEDEF:
+ f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
break;
+ case TYPE_CODE_ARRAY:
case TYPE_CODE_FUNC:
f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
break;
case TYPE_CODE_PTR:
fprintf_filtered (stream, "PTR TO -> ( ");
- f_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
+ f_type_print_base (TYPE_TARGET_TYPE (type), stream, 0, level);
break;
case TYPE_CODE_VOID:
@@ -419,8 +414,7 @@ f_type_print_base (type, stream, show, level)
break;
case TYPE_CODE_COMPLEX:
- fprintf_filtered (stream, "complex*");
- fprintf_filtered (stream, "%d", TYPE_LENGTH (type));
+ fprintf_filtered (stream, "complex*%d", TYPE_LENGTH (type));
break;
case TYPE_CODE_FLT: