2000-09-04 Pierre Muller <muller@ics.u-strasbg.fr>
* 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.
This commit is contained in:
parent
a47cf56716
commit
a5238fbc03
5 changed files with 67 additions and 50 deletions
|
@ -1,3 +1,13 @@
|
|||
2000-09-04 Pierre Muller <muller@ics.u-strasbg.fr>
|
||||
* 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 <kettenis@gnu.org>
|
||||
|
||||
* config/i386/nm-linux.h (PREPARE_TO_PROCEED, ATTCH_LWP,
|
||||
|
|
|
@ -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, "<builtin> = ");
|
||||
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, "<builtin> = ");
|
||||
type_print (type, "", stream, 0);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
error ("Language not supported.");
|
||||
}
|
||||
fprintf_filtered (stream, ";\n");
|
||||
}
|
||||
|
||||
|
||||
/* LEVEL is the depth to indent lines by. */
|
||||
|
||||
|
|
|
@ -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 &&
|
||||
|
|
|
@ -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, "<builtin> = ");
|
||||
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, "<builtin> = ");
|
||||
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).
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue