diff options
Diffstat (limited to 'gdb/m2-typeprint.c')
-rw-r--r-- | gdb/m2-typeprint.c | 86 |
1 files changed, 48 insertions, 38 deletions
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c index c735eb79d9..89be6cf640 100644 --- a/gdb/m2-typeprint.c +++ b/gdb/m2-typeprint.c @@ -40,23 +40,30 @@ static void m2_print_bounds (struct type *type, struct ui_file *stream, int show, int level, int print_high); -static void m2_typedef (struct type *, struct ui_file *, int, int); -static void m2_array (struct type *, struct ui_file *, int, int); -static void m2_pointer (struct type *, struct ui_file *, int, int); -static void m2_ref (struct type *, struct ui_file *, int, int); -static void m2_procedure (struct type *, struct ui_file *, int, int); +static void m2_typedef (struct type *, struct ui_file *, int, int, + const struct type_print_options *); +static void m2_array (struct type *, struct ui_file *, int, int, + const struct type_print_options *); +static void m2_pointer (struct type *, struct ui_file *, int, int, + const struct type_print_options *); +static void m2_ref (struct type *, struct ui_file *, int, int, + const struct type_print_options *); +static void m2_procedure (struct type *, struct ui_file *, int, int, + const struct type_print_options *); static void m2_union (struct type *, struct ui_file *); static void m2_enum (struct type *, struct ui_file *, int, int); -static void m2_range (struct type *, struct ui_file *, int, int); +static void m2_range (struct type *, struct ui_file *, int, int, + const struct type_print_options *); static void m2_type_name (struct type *type, struct ui_file *stream); static void m2_short_set (struct type *type, struct ui_file *stream, int show, int level); static int m2_long_set (struct type *type, struct ui_file *stream, - int show, int level); + int show, int level, const struct type_print_options *flags); static int m2_unbounded_array (struct type *type, struct ui_file *stream, - int show, int level); + int show, int level, + const struct type_print_options *flags); static void m2_record_fields (struct type *type, struct ui_file *stream, - int show, int level); + int show, int level, const struct type_print_options *flags); static void m2_unknown (const char *s, struct type *type, struct ui_file *stream, int show, int level); @@ -68,7 +75,8 @@ int m2_is_unbounded_array (struct type *type); void m2_print_type (struct type *type, const char *varstring, struct ui_file *stream, - int show, int level) + int show, int level, + const struct type_print_options *flags) { enum type_code code; @@ -91,26 +99,26 @@ m2_print_type (struct type *type, const char *varstring, break; case TYPE_CODE_STRUCT: - if (m2_long_set (type, stream, show, level) - || m2_unbounded_array (type, stream, show, level)) + if (m2_long_set (type, stream, show, level, flags) + || m2_unbounded_array (type, stream, show, level, flags)) break; - m2_record_fields (type, stream, show, level); + m2_record_fields (type, stream, show, level, flags); break; case TYPE_CODE_TYPEDEF: - m2_typedef (type, stream, show, level); + m2_typedef (type, stream, show, level, flags); break; case TYPE_CODE_ARRAY: - m2_array (type, stream, show, level); + m2_array (type, stream, show, level, flags); break; case TYPE_CODE_PTR: - m2_pointer (type, stream, show, level); + m2_pointer (type, stream, show, level, flags); break; case TYPE_CODE_REF: - m2_ref (type, stream, show, level); + m2_ref (type, stream, show, level, flags); break; case TYPE_CODE_METHOD: @@ -118,7 +126,7 @@ m2_print_type (struct type *type, const char *varstring, break; case TYPE_CODE_FUNC: - m2_procedure (type, stream, show, level); + m2_procedure (type, stream, show, level, flags); break; case TYPE_CODE_UNION: @@ -142,7 +150,7 @@ m2_print_type (struct type *type, const char *varstring, break; case TYPE_CODE_RANGE: - m2_range (type, stream, show, level); + m2_range (type, stream, show, level, flags); break; default: @@ -184,10 +192,11 @@ m2_type_name (struct type *type, struct ui_file *stream) void m2_range (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { if (TYPE_HIGH_BOUND (type) == TYPE_LOW_BOUND (type)) - m2_print_type (TYPE_DOMAIN_TYPE (type), "", stream, show, level); + m2_print_type (TYPE_DOMAIN_TYPE (type), "", stream, show, level, + flags); else { struct type *target = TYPE_TARGET_TYPE (type); @@ -202,20 +211,20 @@ m2_range (struct type *type, struct ui_file *stream, int show, static void m2_typedef (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { if (TYPE_NAME (type) != NULL) { fputs_filtered (TYPE_NAME (type), stream); fputs_filtered (" = ", stream); } - m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level); + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags); } /* m2_array - prints out a Modula-2 ARRAY ... OF type. */ static void m2_array (struct type *type, struct ui_file *stream, - int show, int level) + int show, int level, const struct type_print_options *flags) { fprintf_filtered (stream, "ARRAY ["); if (TYPE_LENGTH (TYPE_TARGET_TYPE (type)) > 0 @@ -233,27 +242,27 @@ static void m2_array (struct type *type, struct ui_file *stream, / TYPE_LENGTH (TYPE_TARGET_TYPE (type)))); } fprintf_filtered (stream, "] OF "); - m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level); + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags); } static void m2_pointer (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { if (TYPE_CONST (type)) fprintf_filtered (stream, "[...] : "); else fprintf_filtered (stream, "POINTER TO "); - m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level); + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags); } static void m2_ref (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { fprintf_filtered (stream, "VAR"); - m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level); + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, flags); } static void @@ -270,7 +279,7 @@ static void m2_union (struct type *type, struct ui_file *stream) static void m2_procedure (struct type *type, struct ui_file *stream, - int show, int level) + int show, int level, const struct type_print_options *flags) { fprintf_filtered (stream, "PROCEDURE "); m2_type_name (type, stream); @@ -286,12 +295,12 @@ m2_procedure (struct type *type, struct ui_file *stream, fputs_filtered (", ", stream); wrap_here (" "); } - m2_print_type (TYPE_FIELD_TYPE (type, i), "", stream, -1, 0); + m2_print_type (TYPE_FIELD_TYPE (type, i), "", stream, -1, 0, flags); } if (TYPE_TARGET_TYPE (type) != NULL) { fprintf_filtered (stream, " : "); - m2_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, 0); + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, 0, 0, flags); } } } @@ -421,7 +430,8 @@ m2_is_long_set_of_type (struct type *type, struct type **of_type) } static int -m2_long_set (struct type *type, struct ui_file *stream, int show, int level) +m2_long_set (struct type *type, struct ui_file *stream, int show, int level, + const struct type_print_options *flags) { struct type *of_type; int i; @@ -452,7 +462,7 @@ m2_long_set (struct type *type, struct ui_file *stream, int show, int level) fprintf_filtered(stream, "SET OF "); i = TYPE_N_BASECLASSES (type); if (m2_is_long_set_of_type (type, &of_type)) - m2_print_type (of_type, "", stream, show - 1, level); + m2_print_type (of_type, "", stream, show - 1, level, flags); else { fprintf_filtered(stream, "["); @@ -509,7 +519,7 @@ m2_is_unbounded_array (struct type *type) static int m2_unbounded_array (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { if (m2_is_unbounded_array (type)) { @@ -517,7 +527,7 @@ m2_unbounded_array (struct type *type, struct ui_file *stream, int show, { fputs_filtered ("ARRAY OF ", stream); m2_print_type (TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (type, 0)), - "", stream, 0, level); + "", stream, 0, level, flags); } return 1; } @@ -526,7 +536,7 @@ m2_unbounded_array (struct type *type, struct ui_file *stream, int show, void m2_record_fields (struct type *type, struct ui_file *stream, int show, - int level) + int level, const struct type_print_options *flags) { /* Print the tag if it exists. */ if (TYPE_TAG_NAME (type) != NULL) @@ -566,7 +576,7 @@ m2_record_fields (struct type *type, struct ui_file *stream, int show, fputs_filtered (" : ", stream); m2_print_type (TYPE_FIELD_TYPE (type, i), "", - stream, 0, level + 4); + stream, 0, level + 4, flags); if (TYPE_FIELD_PACKED (type, i)) { /* It is a bitfield. This code does not attempt |