summaryrefslogtreecommitdiff
path: root/gdb/language.h
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2005-10-03 21:21:20 +0000
committerJoel Brobecker <brobecker@gnat.com>2005-10-03 21:21:20 +0000
commite79af960e264269f6719a008ca84c56487f2aec2 (patch)
tree328581511cb723c9ac15215a0e1adee8bc4f08bf /gdb/language.h
parent043f5962ba69d000b6106d923792f4ce2fbb37b1 (diff)
downloadbinutils-gdb-e79af960e264269f6719a008ca84c56487f2aec2.tar.gz
2005-10-03 Joel Brobecker <brobecker@adacore.com>
* language.h (language_defn): New field la_print_array_index. (LA_PRINT_ARRAY_INDEX): New macro. (default_print_array_index): Add declaration. * language.c (default_print_array_index): new function. (unknown_language): Add value for new field. (auto_language): Likewise. (local_language): Likewise. * ada-lang.c (ada_print_array_index): New function. (ada_language_defn): Add value for new field. * c-lang.c (c_language_defn): Likewise. (cpluc_language_defn): Likewise. (asm_language_defn): Likewise. (minimal_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * jv-lang.c (java_language_defn): Likewise. * m2-lang.c (m2_language_defn): Likewise. * objc-lang.c (objc_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise. * scm-lang.c (scm_language_defn): Likewise. * valprint.h (print_array_indexes_p): Add declaration. (get_array_low_bound): Add declaration. (maybe_print_array_index): Add declaration. * valprint.c (print_array_indexes): New static variable. (show_print_array_indexes): New function. (print_array_indexes_p): New function. (get_array_low_bound): New function. (maybe_print_array_index): New function. (val_print_array_elements): Print the index of each element if requested by the user. (_initialize_valprint): Add new array-indexes "set/show print" command. * ada-valprint.c (print_optional_low_bound): Replace extracted code by call to ada_get_array_low_bound_and_type(). Stop printing the low bound if indexes will be printed for all elements of the array. (val_print_packed_array_elements): Print the index of each element of the array if necessary.
Diffstat (limited to 'gdb/language.h')
-rw-r--r--gdb/language.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/language.h b/gdb/language.h
index d581bd2ddec..e25aec4036d 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -275,6 +275,12 @@ struct language_defn
void (*la_language_arch_info) (struct gdbarch *,
struct language_arch_info *);
+ /* Print the index of an element of an array. */
+ void (*la_print_array_index) (struct value *index_value,
+ struct ui_file *stream,
+ int format,
+ enum val_prettyprint pretty);
+
/* Add fields above this point, so the magic number is always last. */
/* Magic number for compat checking */
@@ -362,6 +368,9 @@ extern enum language set_language (enum language);
#define LA_EMIT_CHAR(ch, stream, quoter) \
(current_language->la_emitchar(ch, stream, quoter))
+#define LA_PRINT_ARRAY_INDEX(index_value, stream, format, pretty) \
+ (current_language->la_print_array_index(index_value, stream, format, pretty))
+
/* Test a character to decide whether it can be printed in literal form
or needs to be printed in another representation. For example,
in C the literal form of the character with octal value 141 is 'a'
@@ -457,4 +466,10 @@ extern char *language_class_name_from_physname (const struct language_defn *,
/* Splitting strings into words. */
extern char *default_word_break_characters (void);
+/* Print the index of an array element using the C99 syntax. */
+extern void default_print_array_index (struct value *index_value,
+ struct ui_file *stream,
+ int format,
+ enum val_prettyprint pretty);
+
#endif /* defined (LANGUAGE_H) */