From a5238fbc0302d1c9655b2285ce7b3071ee9e9f41 Mon Sep 17 00:00:00 2001 From: Pierre Muller Date: Mon, 4 Sep 2000 08:29:25 +0000 Subject: [PATCH] 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. --- gdb/ChangeLog | 10 +++++++++ gdb/c-typeprint.c | 48 ----------------------------------------- gdb/symtab.c | 2 +- gdb/typeprint.c | 55 +++++++++++++++++++++++++++++++++++++++++++++++ gdb/value.h | 2 +- 5 files changed, 67 insertions(+), 50 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index a2b241ae104..453cbc4b597 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 5c73bbd7da6..99dcba33805 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 2e83933b5be..4068fd0e512 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 7645d9b081d..b46f03f1f59 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 2035e27b3ca..da954622e17 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); -- 2.30.2