mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
* 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:
@ -36,20 +36,20 @@
|
||||
#include <ctype.h>
|
||||
|
||||
static void pascal_type_print_varspec_suffix (struct type *, struct ui_file *,
|
||||
int, int, int);
|
||||
int, int, int,
|
||||
const struct type_print_options *);
|
||||
|
||||
static void pascal_type_print_derivation_info (struct ui_file *,
|
||||
struct type *);
|
||||
|
||||
void pascal_type_print_varspec_prefix (struct type *, struct ui_file *,
|
||||
int, int);
|
||||
|
||||
|
||||
/* LEVEL is the depth to indent lines by. */
|
||||
|
||||
void
|
||||
pascal_print_type (struct type *type, const char *varstring,
|
||||
struct ui_file *stream, int show, int level)
|
||||
struct ui_file *stream, int show, int level,
|
||||
const struct type_print_options *flags)
|
||||
{
|
||||
enum type_code code;
|
||||
int demangled_args;
|
||||
@ -62,7 +62,7 @@ pascal_print_type (struct type *type, const char *varstring,
|
||||
if ((code == TYPE_CODE_FUNC
|
||||
|| code == TYPE_CODE_METHOD))
|
||||
{
|
||||
pascal_type_print_varspec_prefix (type, stream, show, 0);
|
||||
pascal_type_print_varspec_prefix (type, stream, show, 0, flags);
|
||||
}
|
||||
/* first the name */
|
||||
fputs_filtered (varstring, stream);
|
||||
@ -77,15 +77,16 @@ pascal_print_type (struct type *type, const char *varstring,
|
||||
if (!(code == TYPE_CODE_FUNC
|
||||
|| code == TYPE_CODE_METHOD))
|
||||
{
|
||||
pascal_type_print_varspec_prefix (type, stream, show, 0);
|
||||
pascal_type_print_varspec_prefix (type, stream, show, 0, flags);
|
||||
}
|
||||
|
||||
pascal_type_print_base (type, stream, show, level);
|
||||
pascal_type_print_base (type, stream, show, level, flags);
|
||||
/* For demangled function names, we have the arglist as part of the name,
|
||||
so don't print an additional pair of ()'s. */
|
||||
|
||||
demangled_args = varstring ? strchr (varstring, '(') != NULL : 0;
|
||||
pascal_type_print_varspec_suffix (type, stream, show, 0, demangled_args);
|
||||
pascal_type_print_varspec_suffix (type, stream, show, 0, demangled_args,
|
||||
flags);
|
||||
|
||||
}
|
||||
|
||||
@ -205,7 +206,8 @@ pascal_type_print_method_args (const char *physname, const char *methodname,
|
||||
|
||||
void
|
||||
pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
|
||||
int show, int passed_a_ptr)
|
||||
int show, int passed_a_ptr,
|
||||
const struct type_print_options *flags)
|
||||
{
|
||||
if (type == 0)
|
||||
return;
|
||||
@ -219,7 +221,8 @@ pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
|
||||
{
|
||||
case TYPE_CODE_PTR:
|
||||
fprintf_filtered (stream, "^");
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1);
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1,
|
||||
flags);
|
||||
break; /* Pointer should be handled normally
|
||||
in pascal. */
|
||||
|
||||
@ -239,13 +242,14 @@ pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
|
||||
{
|
||||
fprintf_filtered (stream, " ");
|
||||
pascal_type_print_base (TYPE_DOMAIN_TYPE (type),
|
||||
stream, 0, passed_a_ptr);
|
||||
stream, 0, passed_a_ptr, flags);
|
||||
fprintf_filtered (stream, "::");
|
||||
}
|
||||
break;
|
||||
|
||||
case TYPE_CODE_REF:
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1);
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type), stream, 0, 1,
|
||||
flags);
|
||||
fprintf_filtered (stream, "&");
|
||||
break;
|
||||
|
||||
@ -301,7 +305,8 @@ pascal_type_print_varspec_prefix (struct type *type, struct ui_file *stream,
|
||||
}
|
||||
|
||||
static void
|
||||
pascal_print_func_args (struct type *type, struct ui_file *stream)
|
||||
pascal_print_func_args (struct type *type, struct ui_file *stream,
|
||||
const struct type_print_options *flags)
|
||||
{
|
||||
int i, len = TYPE_NFIELDS (type);
|
||||
|
||||
@ -323,7 +328,7 @@ pascal_print_func_args (struct type *type, struct ui_file *stream)
|
||||
} */
|
||||
pascal_print_type (TYPE_FIELD_TYPE (type, i), "" /* TYPE_FIELD_NAME
|
||||
seems invalid! */
|
||||
,stream, -1, 0);
|
||||
,stream, -1, 0, flags);
|
||||
}
|
||||
if (len)
|
||||
{
|
||||
@ -338,7 +343,8 @@ pascal_print_func_args (struct type *type, struct ui_file *stream)
|
||||
static void
|
||||
pascal_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
|
||||
int show, int passed_a_ptr,
|
||||
int demangled_args)
|
||||
int demangled_args,
|
||||
const struct type_print_options *flags)
|
||||
{
|
||||
if (type == 0)
|
||||
return;
|
||||
@ -365,32 +371,34 @@ pascal_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
|
||||
{
|
||||
fprintf_filtered (stream, " : ");
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
|
||||
stream, 0, 0);
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
|
||||
stream, 0, 0, flags);
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0,
|
||||
flags);
|
||||
pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
|
||||
passed_a_ptr, 0);
|
||||
passed_a_ptr, 0, flags);
|
||||
}
|
||||
break;
|
||||
|
||||
case TYPE_CODE_PTR:
|
||||
case TYPE_CODE_REF:
|
||||
pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type),
|
||||
stream, 0, 1, 0);
|
||||
stream, 0, 1, 0, flags);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_FUNC:
|
||||
if (passed_a_ptr)
|
||||
fprintf_filtered (stream, ")");
|
||||
if (!demangled_args)
|
||||
pascal_print_func_args (type, stream);
|
||||
pascal_print_func_args (type, stream, flags);
|
||||
if (TYPE_CODE (TYPE_TARGET_TYPE (type)) != TYPE_CODE_VOID)
|
||||
{
|
||||
fprintf_filtered (stream, " : ");
|
||||
pascal_type_print_varspec_prefix (TYPE_TARGET_TYPE (type),
|
||||
stream, 0, 0);
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0);
|
||||
stream, 0, 0, flags);
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, 0,
|
||||
flags);
|
||||
pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type), stream, 0,
|
||||
passed_a_ptr, 0);
|
||||
passed_a_ptr, 0, flags);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -436,7 +444,7 @@ pascal_type_print_varspec_suffix (struct type *type, struct ui_file *stream,
|
||||
|
||||
void
|
||||
pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
int level)
|
||||
int level, const struct type_print_options *flags)
|
||||
{
|
||||
int i;
|
||||
int len;
|
||||
@ -482,7 +490,8 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
case TYPE_CODE_REF:
|
||||
/* case TYPE_CODE_FUNC:
|
||||
case TYPE_CODE_METHOD: */
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level);
|
||||
pascal_type_print_base (TYPE_TARGET_TYPE (type), stream, show, level,
|
||||
flags);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_ARRAY:
|
||||
@ -492,7 +501,7 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
stream, show, level);
|
||||
pascal_type_print_varspec_suffix (TYPE_TARGET_TYPE (type),
|
||||
stream, 0, 0, 0); */
|
||||
pascal_print_type (TYPE_TARGET_TYPE (type), NULL, stream, 0, 0);
|
||||
pascal_print_type (TYPE_TARGET_TYPE (type), NULL, stream, 0, 0, flags);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_FUNC:
|
||||
@ -601,7 +610,7 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
fprintf_filtered (stream, "static ");
|
||||
pascal_print_type (TYPE_FIELD_TYPE (type, i),
|
||||
TYPE_FIELD_NAME (type, i),
|
||||
stream, show - 1, level + 4);
|
||||
stream, show - 1, level + 4, flags);
|
||||
if (!field_is_static (&TYPE_FIELD (type, i))
|
||||
&& TYPE_FIELD_PACKED (type, i))
|
||||
{
|
||||
@ -787,7 +796,7 @@ pascal_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||
case TYPE_CODE_SET:
|
||||
fputs_filtered ("set of ", stream);
|
||||
pascal_print_type (TYPE_INDEX_TYPE (type), "", stream,
|
||||
show - 1, level);
|
||||
show - 1, level, flags);
|
||||
break;
|
||||
|
||||
case TYPE_CODE_STRING:
|
||||
|
Reference in New Issue
Block a user