* ada-lang.c (user_select_syms, ada_print_subexp): Pass flags

to type-printing functions.
	* ada-lang.h (ada_print_type): Add argument.
	* ada-typeprint.c (print_array_type, print_variant_clauses,
	print_variant_part, print_selected_record_field_types,
	print_record_field_types, print_unchecked_union_type,
	print_func_type, ada_print_type): Add flags argument.
	(ada_print_typedef): Update.
	* c-exp.y (OPERATOR conversion_type_id): Update.
	* c-lang.h (c_print_type, c_type_print_base): Update.
	* c-typeprint.c (c_print_type, c_type_print_varspec_prefix,
	c_type_print_modifier, c_type_print_args,
	c_type_print_varspec_suffix, c_type_print_base): Add flags
	argument.
	* cp-valprint.c (cp_print_class_member): Update.
	* dwarf2read.c (dwarf2_compute_name): Update.
	* f-lang.h (f_print_type): Add argument.
	* f-typeprint.c (f_print_type): Add flags argument.
	* gnu-v3-abi.c (gnuv3_print_method_ptr): Update.
	* go-lang.h (go_print_type): Add argument.
	* go-typeprint.c (go_print_type): Add flags argument.
	* jv-lang.h (java_print_type): Add argument.
	* jv-typeprint.c (java_type_print_base, java_print_type): Add
	flags argument.
	* language.c (unk_lang_print_type): Add flags argument.
	* language.h (struct language_defn) <la_print_type>: Add flags
	argument.
	(LA_PRINT_TYPE): Likewise.
	* m2-lang.h (m2_print_type): Add argument.
	* m2-typeprint.c (m2_print_type, m2_range, m2_typedef,
	m2_array, m2_pointer, m2_ref, m2_procedure, m2_long_set,
	m2_unbounded_array, m2_record_fields): Add flags argument.
	* p-lang.h (pascal_print_type, pascal_type_print_base,
	pascal_type_print_varspec_prefix): Add argument.
	* p-typeprint.c (pascal_print_type,
	pascal_type_print_varspec_prefix, pascal_print_func_args,
	pascal_type_print_varspec_suffix, pascal_type_print_base): Add
	flags argument.
	* symmisc.c (print_symbol): Update.
	* typeprint.c (type_print_raw_options, default_ptype_flags):
	New globals.
	(type_print): Update.
	* typeprint.h (struct type_print_options): New.
	(type_print_raw_options): Declare.
	(c_type_print_varspec_suffix, c_type_print_args): Add argument.
This commit is contained in:
Tom Tromey
2012-11-12 17:14:55 +00:00
parent b3720c3afd
commit 79d43c6168
25 changed files with 314 additions and 175 deletions

View File

@ -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