summaryrefslogtreecommitdiff
path: root/gdb/m2-typeprint.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2008-09-27 21:29:30 +0000
committerTom Tromey <tromey@redhat.com>2008-09-27 21:29:30 +0000
commit5c6ce71d76dc5618b6ebfc967e5c4b99d701ef50 (patch)
treee6c4de30e9bd0ff72eaaac583d47791a25c8e9d2 /gdb/m2-typeprint.c
parent09be204ecc3169d95a9cb1311d495888408b3173 (diff)
downloadbinutils-gdb-5c6ce71d76dc5618b6ebfc967e5c4b99d701ef50.tar.gz
gdb
* scm-lang.c (scm_language_defn): Update. * p-typeprint.c (pascal_print_typedef): New function. * p-lang.h: (pascal_print_typedef): Declare. * p-lang.c (pascal_language_defn): Update. * objc-lang.c (objc_language_defn): Update. * m2-typeprint.c (m2_print_typedef): New function. * m2-lang.h (m2_print_typedef): Declare. * m2-lang.c (m2_language_defn): Update. * language.h (_LANG_c, _LANG_m2, _LANG_fortran, _LANG_pascal): Remove. (struct language_defn) <la_print_typedef>: New field. (default_print_typedef): Declare. (LA_PRINT_TYPEDEF): New define. * language.c (unknown_language_defn): Update. (auto_language_defn): Update. (local_language_defn): Update. * jv-lang.c (java_language_defn): Update. * f-lang.c (f_language_defn): Update. * c-typeprint.c (c_print_typedef): New function. * c-lang.h (c_print_typedef): Declare. * c-lang.c (c_language_defn): Update. (cplus_language_defn): Update. (asm_language_defn): Update. (minimal_language_defn): Update. * ada-lang.c (ada_language_defn): Update. * typeprint.c (default_print_typedef): New function. gdb/doc * gdbint.texinfo (Language Support): Remove text about omitting support for a language.
Diffstat (limited to 'gdb/m2-typeprint.c')
-rw-r--r--gdb/m2-typeprint.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/gdb/m2-typeprint.c b/gdb/m2-typeprint.c
index 666ae286677..e2970e2a4e2 100644
--- a/gdb/m2-typeprint.c
+++ b/gdb/m2-typeprint.c
@@ -154,6 +154,26 @@ m2_print_type (struct type *type, char *varstring, struct ui_file *stream,
}
}
+/* Print a typedef using M2 syntax. TYPE is the underlying type.
+ NEW_SYMBOL is the symbol naming the type. STREAM is the stream on
+ which to print. */
+
+void
+m2_print_typedef (struct type *type, struct symbol *new_symbol,
+ struct ui_file *stream)
+{
+ CHECK_TYPEDEF (type);
+ fprintf_filtered (stream, "TYPE ");
+ if (!TYPE_NAME (SYMBOL_TYPE (new_symbol))
+ || strcmp (TYPE_NAME ((SYMBOL_TYPE (new_symbol))),
+ SYMBOL_LINKAGE_NAME (new_symbol)) != 0)
+ fprintf_filtered (stream, "%s = ", SYMBOL_PRINT_NAME (new_symbol));
+ else
+ fprintf_filtered (stream, "<builtin> = ");
+ type_print (type, "", stream, 0);
+ fprintf_filtered (stream, ";\n");
+}
+
/* m2_type_name - if a, type, has a name then print it. */
void