X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fm2-valprint.c;h=4dc0fe18e6a785864467e3aaae7ac5746cb163f5;hb=d3ecddab5fc036fb57588a9bfff73575dc419052;hp=2d3a32f769a4198c567217c27281ad2759023218;hpb=00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/m2-valprint.c b/gdb/m2-valprint.c index 2d3a32f769..4dc0fe18e6 100644 --- a/gdb/m2-valprint.c +++ b/gdb/m2-valprint.c @@ -1,6 +1,6 @@ /* Support for printing Modula 2 values for GDB, the GNU debugger. - Copyright (C) 1986-2016 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -28,6 +28,7 @@ #include "c-lang.h" #include "m2-lang.h" #include "target.h" +#include "cli/cli-style.h" static int print_unpacked_pointer (struct type *type, CORE_ADDR address, CORE_ADDR addr, @@ -37,7 +38,7 @@ static void m2_print_array_contents (struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, int len); @@ -92,7 +93,8 @@ m2_print_long_set (struct type *type, const gdb_byte *valaddr, } else { - fprintf_filtered (stream, " %s }", _("")); + fprintf_styled (stream, metadata_style.style (), + " %s }", _("")); return; } @@ -162,13 +164,11 @@ m2_print_unbounded_array (struct type *type, const gdb_byte *valaddr, struct ui_file *stream, int recurse, const struct value_print_options *options) { - struct type *content_type; CORE_ADDR addr; LONGEST len; struct value *val; type = check_typedef (type); - content_type = TYPE_TARGET_TYPE (TYPE_FIELD_TYPE (type, 0)); addr = unpack_pointer (TYPE_FIELD_TYPE (type, 0), (TYPE_FIELD_BITPOS (type, 0) / 8) + @@ -264,7 +264,7 @@ static void m2_print_array_contents (struct type *type, const gdb_byte *valaddr, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *val, + struct value *val, const struct value_print_options *options, int len) { @@ -284,7 +284,7 @@ m2_print_array_contents (struct type *type, const gdb_byte *valaddr, else { fprintf_filtered (stream, "{"); - val_print_array_elements (type, valaddr, embedded_offset, + val_print_array_elements (type, embedded_offset, address, stream, recurse, val, options, 0); fprintf_filtered (stream, "}"); @@ -310,16 +310,15 @@ static const struct generic_val_print_decorations m2_decorations = function; they are identical. */ void -m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, +m2_val_print (struct type *type, int embedded_offset, CORE_ADDR address, struct ui_file *stream, int recurse, - const struct value *original_value, + struct value *original_value, const struct value_print_options *options) { - struct gdbarch *gdbarch = get_type_arch (type); - unsigned int i = 0; /* Number of characters printed. */ unsigned len; struct type *elttype; CORE_ADDR addr; + const gdb_byte *valaddr = value_contents_for_printing (original_value); type = check_typedef (type); switch (TYPE_CODE (type)) @@ -355,12 +354,11 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, LA_PRINT_STRING (stream, TYPE_TARGET_TYPE (type), valaddr + embedded_offset, len, NULL, 0, options); - i = len; } else { fprintf_filtered (stream, "{"); - val_print_array_elements (type, valaddr, embedded_offset, + val_print_array_elements (type, embedded_offset, address, stream, recurse, original_value, options, 0); @@ -377,7 +375,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, print_variable_at_address (type, valaddr + embedded_offset, stream, recurse, options); else if (options->format && options->format != 's') - val_print_scalar_formatted (type, valaddr, embedded_offset, + val_print_scalar_formatted (type, embedded_offset, original_value, options, 0, stream); else { @@ -401,7 +399,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, m2_print_unbounded_array (type, valaddr, embedded_offset, address, stream, recurse, options); else - cp_print_value_fields (type, type, valaddr, embedded_offset, + cp_print_value_fields (type, type, embedded_offset, address, stream, recurse, original_value, options, NULL, 0); break; @@ -411,8 +409,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, elttype = check_typedef (elttype); if (TYPE_STUB (elttype)) { - fprintf_filtered (stream, _("")); - gdb_flush (stream); + fprintf_styled (stream, metadata_style.style (), + _("")); break; } else @@ -428,7 +426,8 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, maybe_bad_bstring: if (i < 0) { - fputs_filtered (_(""), stream); + fputs_styled (_(""), metadata_style.style (), + stream); goto done; } @@ -473,7 +472,7 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, case TYPE_CODE_RANGE: if (TYPE_LENGTH (type) == TYPE_LENGTH (TYPE_TARGET_TYPE (type))) { - m2_val_print (TYPE_TARGET_TYPE (type), valaddr, embedded_offset, + m2_val_print (TYPE_TARGET_TYPE (type), embedded_offset, address, stream, recurse, original_value, options); break; } @@ -498,10 +497,9 @@ m2_val_print (struct type *type, const gdb_byte *valaddr, int embedded_offset, case TYPE_CODE_BOOL: case TYPE_CODE_CHAR: default: - generic_val_print (type, valaddr, embedded_offset, address, + generic_val_print (type, embedded_offset, address, stream, recurse, original_value, options, &m2_decorations); break; } - gdb_flush (stream); }