X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fada-typeprint.c;h=c2461660ad4aff9553b41fd1172d2e3e4ccfe42f;hb=7f6aba03b929d3d893378760eeeca431005fc5cd;hp=9d23302865077d6eb469cbee4e2bdbcf0bd194ab;hpb=50eff16b85073287b1b184a257a8fd80e960fe02;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/ada-typeprint.c b/gdb/ada-typeprint.c index 9d23302865..c2461660ad 100644 --- a/gdb/ada-typeprint.c +++ b/gdb/ada-typeprint.c @@ -1,5 +1,5 @@ /* Support for printing Ada types for GDB, the GNU debugger. - Copyright (C) 1986-2017 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -30,6 +30,7 @@ #include "language.h" #include "demangle.h" #include "c-lang.h" +#include "cli/cli-style.h" #include "typeprint.h" #include "target-float.h" #include "ada-lang.h" @@ -159,20 +160,15 @@ print_range (struct type *type, struct ui_file *stream, case TYPE_CODE_RANGE: case TYPE_CODE_ENUM: { - struct type *target_type; LONGEST lo = 0, hi = 0; /* init for gcc -Wall */ int got_error = 0; - target_type = TYPE_TARGET_TYPE (type); - if (target_type == NULL) - target_type = type; - - TRY + try { lo = ada_discrete_type_low_bound (type); hi = ada_discrete_type_high_bound (type); } - CATCH (e, RETURN_MASK_ERROR) + catch (const gdb_exception_error &e) { /* This can happen when the range is dynamic. Sometimes, resolving dynamic property values requires us to have @@ -182,13 +178,12 @@ print_range (struct type *type, struct ui_file *stream, fprintf_filtered (stream, "<>"); got_error = 1; } - END_CATCH if (!got_error) { - ada_print_scalar (target_type, lo, stream); + ada_print_scalar (type, lo, stream); fprintf_filtered (stream, " .. "); - ada_print_scalar (target_type, hi, stream); + ada_print_scalar (type, hi, stream); } } break; @@ -398,7 +393,8 @@ print_array_type (struct type *type, struct ui_file *stream, int show, if (type == NULL) { - fprintf_filtered (stream, _("")); + fprintf_styled (stream, metadata_style.style (), + _("")); return; } @@ -784,7 +780,10 @@ print_func_type (struct type *type, struct ui_file *stream, const char *name, fprintf_filtered (stream, "function"); if (name != NULL && name[0] != '\0') - fprintf_filtered (stream, " %s", name); + { + fputs_filtered (" ", stream); + fputs_styled (name, function_name_style.style (), stream); + } if (len > 0) { @@ -840,7 +839,7 @@ ada_print_type (struct type *type0, const char *varstring, if (is_var_decl) fprintf_filtered (stream, "%.*s: ", ada_name_prefix_len (varstring), varstring); - fprintf_filtered (stream, ""); + fprintf_styled (stream, metadata_style.style (), ""); return; } @@ -896,8 +895,9 @@ ada_print_type (struct type *type0, const char *varstring, const char *name = ada_type_name (type); if (!ada_is_range_type_name (name)) - fprintf_filtered (stream, _("<%d-byte integer>"), - TYPE_LENGTH (type)); + fprintf_styled (stream, metadata_style.style (), + _("<%s-byte integer>"), + pulongest (TYPE_LENGTH (type))); else { fprintf_filtered (stream, "range "); @@ -918,7 +918,9 @@ ada_print_type (struct type *type0, const char *varstring, } break; case TYPE_CODE_FLT: - fprintf_filtered (stream, _("<%d-byte float>"), TYPE_LENGTH (type)); + fprintf_styled (stream, metadata_style.style (), + _("<%s-byte float>"), + pulongest (TYPE_LENGTH (type))); break; case TYPE_CODE_ENUM: if (show < 0)