summaryrefslogtreecommitdiff
path: root/gdb/f-typeprint.c
diff options
context:
space:
mode:
authorMarkus Deuling <deuling@de.ibm.com>2008-04-22 06:53:18 +0000
committerMarkus Deuling <deuling@de.ibm.com>2008-04-22 06:53:18 +0000
commit739320d1a6af52fe70831e500f27227b385e554e (patch)
treeaf0c675575ec9e6d1aaf78fb9dcc8b30a01c6a6d /gdb/f-typeprint.c
parent935cf51fa7f81f228d92935f74ebcb9062e8d246 (diff)
downloadgdb-739320d1a6af52fe70831e500f27227b385e554e.tar.gz
* eval.c (evaluate_subexp_standard): Use value_subscripted_rvalue for
multi_f77_subscript to support values from registers. * valarith.c (value_subscripted_rvalue): Remove prototype and static. * value.h (value_subscripted_rvalue): Add prototype. * f-typeprint.c (f_type_print_base): Add support for TYPE_CODE_UNION. Fix output. * f-valprint.c (f_val_print): Likewise.
Diffstat (limited to 'gdb/f-typeprint.c')
-rw-r--r--gdb/f-typeprint.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gdb/f-typeprint.c b/gdb/f-typeprint.c
index d55c1657c9c..ad93152273d 100644
--- a/gdb/f-typeprint.c
+++ b/gdb/f-typeprint.c
@@ -368,14 +368,22 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
break;
case TYPE_CODE_STRUCT:
- fprintfi_filtered (level, stream, "Type ");
+ case TYPE_CODE_UNION:
+ if (TYPE_CODE (type) == TYPE_CODE_UNION)
+ fprintfi_filtered (level, stream, "Type, C_Union :: ");
+ else
+ fprintfi_filtered (level, stream, "Type ");
fputs_filtered (TYPE_TAG_NAME (type), stream);
fputs_filtered ("\n", stream);
for (index = 0; index < TYPE_NFIELDS (type); index++)
{
- f_print_type (TYPE_FIELD_TYPE (type, index), "", stream, show, level + 4);
+ f_type_print_base (TYPE_FIELD_TYPE (type, index), stream, show,
+ level + 4);
fputs_filtered (" :: ", stream);
- fputs_filtered (TYPE_FIELD_NAME (type, index), stream);
+ fprintfi_filtered (level, stream, "%s",
+ TYPE_FIELD_NAME (type, index));
+ f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index),
+ stream, 0, 0, 0);
fputs_filtered ("\n", stream);
}
fprintfi_filtered (level, stream, "End Type ");