X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fm2-typeprint.c;h=d35d3e58f140961858205a41f558d779f4f46a2d;hb=484b3c325d8182cd7b7da4ceeaedc238c7f80b5c;hp=89be6cf64019712d755704c1bd3b47ff36f7f480;hpb=79d43c6168cdc6f263988e7c2fad9d4c82b5cd42;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c index 89be6cf640..d35d3e58f1 100644 --- a/gdb/m2-typeprint.c +++ b/gdb/m2-typeprint.c @@ -1,6 +1,5 @@ /* Support for printing Modula 2 types for GDB, the GNU debugger. - Copyright (C) 1986, 1988-1989, 1991-1992, 1995, 2000-2012 Free - Software Foundation, Inc. + Copyright (C) 1986-2016 Free Software Foundation, Inc. This file is part of GDB. @@ -33,9 +32,6 @@ #include "typeprint.h" #include "cp-abi.h" -#include "gdb_string.h" -#include - static void m2_print_bounds (struct type *type, struct ui_file *stream, int show, int level, int print_high); @@ -78,9 +74,7 @@ m2_print_type (struct type *type, const char *varstring, int show, int level, const struct type_print_options *flags) { - enum type_code code; - - CHECK_TYPEDEF (type); + type = check_typedef (type); QUIT; @@ -91,7 +85,6 @@ m2_print_type (struct type *type, const char *varstring, return; } - code = TYPE_CODE (type); switch (TYPE_CODE (type)) { case TYPE_CODE_SET: @@ -167,7 +160,7 @@ void m2_print_typedef (struct type *type, struct symbol *new_symbol, struct ui_file *stream) { - CHECK_TYPEDEF (type); + type = check_typedef (type); fprintf_filtered (stream, "TYPE "); if (!TYPE_NAME (SYMBOL_TYPE (new_symbol)) || strcmp (TYPE_NAME ((SYMBOL_TYPE (new_symbol))), @@ -195,8 +188,12 @@ m2_range (struct type *type, struct ui_file *stream, int show, 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, - flags); + { + /* FIXME: TYPE_TARGET_TYPE used to be TYPE_DOMAIN_TYPE but that was + wrong. Not sure if TYPE_TARGET_TYPE is correct though. */ + m2_print_type (TYPE_TARGET_TYPE (type), "", stream, show, level, + flags); + } else { struct type *target = TYPE_TARGET_TYPE (type); @@ -376,7 +373,7 @@ m2_is_long_set (struct type *type) static int m2_get_discrete_bounds (struct type *type, LONGEST *lowp, LONGEST *highp) { - CHECK_TYPEDEF (type); + type = check_typedef (type); switch (TYPE_CODE (type)) { case TYPE_CODE_CHAR: @@ -541,7 +538,7 @@ m2_record_fields (struct type *type, struct ui_file *stream, int show, /* Print the tag if it exists. */ if (TYPE_TAG_NAME (type) != NULL) { - if (strncmp (TYPE_TAG_NAME (type), "$$", 2) != 0) + if (!startswith (TYPE_TAG_NAME (type), "$$")) { fputs_filtered (TYPE_TAG_NAME (type), stream); if (show > 0)