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:
Pierre Muller 2000-09-04 08:29:25 +00:00
parent a47cf56716
commit a5238fbc03
5 changed files with 67 additions and 50 deletions

View file

@ -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,

View file

@ -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. */

View file

@ -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 &&

View file

@ -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).

View file

@ -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);