From: Pierre Muller Date: Mon, 4 Sep 2000 08:29:25 +0000 (+0000) Subject: 2000-09-04 Pierre Muller X-Git-Tag: newlib-1_9_0~1000 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5238fbc0302d1c9655b2285ce7b3071ee9e9f41;p=external%2Fbinutils.git 2000-09-04 Pierre Muller * c-typeprint.c (c_typedef_print): remove (replaced by typedef_print in typeprint.c). * typeprint.c (typedef_print): new function. (old c_typedef_print function with pascal language support added). * value.h (c_printdef_print): removed. (typedef_print): declare. * symtab.c (print_symbol_info): call to c_typedef_print replaced by call to typedef_print. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a2b241a..453cbc4 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,13 @@ +2000-09-04 Pierre Muller + * c-typeprint.c (c_typedef_print): remove (replaced by typedef_print in + typeprint.c). + * typeprint.c (typedef_print): new function. (old c_typedef_print + function with pascal language support added). + * value.h (c_printdef_print): removed. + (typedef_print): declare. + * symtab.c (print_symbol_info): call to c_typedef_print replaced by + call to typedef_print. + 2000-09-03 Mark Kettenis * config/i386/nm-linux.h (PREPARE_TO_PROCEED, ATTCH_LWP, diff --git a/gdb/c-typeprint.c b/gdb/c-typeprint.c index 5c73bbd..99dcba3 100644 --- a/gdb/c-typeprint.c +++ b/gdb/c-typeprint.c @@ -58,54 +58,6 @@ static void c_type_print_cv_qualifier (struct type *, struct ui_file *, -/* Print a description of a type in the format of a - typedef for the current language. - NEW is the new name for a type TYPE. */ - -void -c_typedef_print (struct type *type, struct symbol *new, struct ui_file *stream) -{ - CHECK_TYPEDEF (type); - switch (current_language->la_language) - { -#ifdef _LANG_c - case language_c: - case language_cplus: - fprintf_filtered (stream, "typedef "); - type_print (type, "", stream, 0); - if (TYPE_NAME ((SYMBOL_TYPE (new))) == 0 - || !STREQ (TYPE_NAME ((SYMBOL_TYPE (new))), SYMBOL_NAME (new))) - fprintf_filtered (stream, " %s", SYMBOL_SOURCE_NAME (new)); - break; -#endif -#ifdef _LANG_m2 - case language_m2: - fprintf_filtered (stream, "TYPE "); - if (!TYPE_NAME (SYMBOL_TYPE (new)) || - !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) - fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); - else - fprintf_filtered (stream, " = "); - type_print (type, "", stream, 0); - break; -#endif -#ifdef _LANG_chill - case language_chill: - fprintf_filtered (stream, "SYNMODE "); - if (!TYPE_NAME (SYMBOL_TYPE (new)) || - !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) - fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); - else - fprintf_filtered (stream, " = "); - type_print (type, "", stream, 0); - break; -#endif - default: - error ("Language not supported."); - } - fprintf_filtered (stream, ";\n"); -} - /* LEVEL is the depth to indent lines by. */ diff --git a/gdb/symtab.c b/gdb/symtab.c index 2e83933..4068fd0 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -3830,7 +3830,7 @@ print_symbol_info (namespace_enum kind, struct symtab *s, struct symbol *sym, /* Typedef that is not a C++ class */ if (kind == TYPES_NAMESPACE && SYMBOL_NAMESPACE (sym) != STRUCT_NAMESPACE) - c_typedef_print (SYMBOL_TYPE (sym), sym, gdb_stdout); + typedef_print (SYMBOL_TYPE (sym), sym, gdb_stdout); /* variable, func, or typedef-that-is-c++-class */ else if (kind < TYPES_NAMESPACE || (kind == TYPES_NAMESPACE && diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 7645d9b..b46f03f 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -49,6 +49,61 @@ static void whatis_command (char *, int); static void whatis_exp (char *, int); +/* Print a description of a type in the format of a + typedef for the current language. + NEW is the new name for a type TYPE. */ + +void +typedef_print (struct type *type, struct symbol *new, struct ui_file *stream) +{ + CHECK_TYPEDEF (type); + switch (current_language->la_language) + { +#ifdef _LANG_c + case language_c: + case language_cplus: + fprintf_filtered (stream, "typedef "); + type_print (type, "", stream, 0); + if (TYPE_NAME ((SYMBOL_TYPE (new))) == 0 + || !STREQ (TYPE_NAME ((SYMBOL_TYPE (new))), SYMBOL_NAME (new))) + fprintf_filtered (stream, " %s", SYMBOL_SOURCE_NAME (new)); + break; +#endif +#ifdef _LANG_m2 + case language_m2: + fprintf_filtered (stream, "TYPE "); + if (!TYPE_NAME (SYMBOL_TYPE (new)) || + !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) + fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); + else + fprintf_filtered (stream, " = "); + type_print (type, "", stream, 0); + break; +#endif +#ifdef _LANG_pascal + case language_pascal: + fprintf_filtered (stream, "type "); + fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); + type_print (type, "", stream, 0); + break; +#endif +#ifdef _LANG_chill + case language_chill: + fprintf_filtered (stream, "SYNMODE "); + if (!TYPE_NAME (SYMBOL_TYPE (new)) || + !STREQ (TYPE_NAME (SYMBOL_TYPE (new)), SYMBOL_NAME (new))) + fprintf_filtered (stream, "%s = ", SYMBOL_SOURCE_NAME (new)); + else + fprintf_filtered (stream, " = "); + type_print (type, "", stream, 0); + break; +#endif + default: + error ("Language not supported."); + } + fprintf_filtered (stream, ";\n"); +} + /* Print a description of a type TYPE in the form of a declaration of a variable named VARSTRING. (VARSTRING is demangled if necessary.) Output goes to STREAM (via stdio). diff --git a/gdb/value.h b/gdb/value.h index 2035e27..da95462 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -536,7 +536,7 @@ extern void print_variable_value (struct symbol * var, extern int check_field (value_ptr, const char *); -extern void c_typedef_print (struct type * type, struct symbol * news, +extern void typedef_print (struct type * type, struct symbol * news, struct ui_file * stream); extern char *internalvar_name (struct internalvar *var);