From: Andrew Burgess Date: Fri, 1 May 2020 16:18:36 +0000 (+0100) Subject: gdb: Convert language la_print_array_index field to a method X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5bd40f2a3feb273e92b640544f6e5307c8124d90;p=binutils-gdb.git gdb: Convert language la_print_array_index field to a method This commit changes the language_data::la_print_array_index function pointer member variable into a member function of language_defn. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_print_array_index): Delete function, move implementation to... (ada_language::print_array_index): ...here. (ada_language_data): Delete la_print_array_index initializer. * c-lang.c (c_language_data): Likewise. (cplus_language_data): Likewise. (minimal_language_data): Likewise. * d-lang.c (d_language_data): Likewise. * f-lang.c (f_language_data): Likewise. * go-lang.c (go_language_data): Likewise. * language.c (default_print_array_index): Delete function, move implementation to... (language_defn::print_array_index): ...here. (unknown_language_data): Delete la_print_array_index initializer. (auto_language_data): Likewise. * language.h (struct language_data): Delete la_print_array_index field. (language_defn::print_array_index): New member function. (LA_PRINT_ARRAY_INDEX): Update. (default_print_array_index): Delete declaration. * m2-lang.c (m2_language_data): Delete la_print_array_index initializer. * objc-lang.c (objc_language_data): Likewise. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_language_data): Likewise. * rust-lang.c (rust_language_data): Likewise. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3c8f9fcb49d..e0e60a9df1b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,32 @@ +2020-06-02 Andrew Burgess + + * ada-lang.c (ada_print_array_index): Delete function, move + implementation to... + (ada_language::print_array_index): ...here. + (ada_language_data): Delete la_print_array_index initializer. + * c-lang.c (c_language_data): Likewise. + (cplus_language_data): Likewise. + (minimal_language_data): Likewise. + * d-lang.c (d_language_data): Likewise. + * f-lang.c (f_language_data): Likewise. + * go-lang.c (go_language_data): Likewise. + * language.c (default_print_array_index): Delete function, move + implementation to... + (language_defn::print_array_index): ...here. + (unknown_language_data): Delete la_print_array_index initializer. + (auto_language_data): Likewise. + * language.h (struct language_data): Delete la_print_array_index + field. + (language_defn::print_array_index): New member function. + (LA_PRINT_ARRAY_INDEX): Update. + (default_print_array_index): Delete declaration. + * m2-lang.c (m2_language_data): Delete la_print_array_index + initializer. + * objc-lang.c (objc_language_data): Likewise. + * opencl-lang.c (opencl_language_data): Likewise. + * p-lang.c (pascal_language_data): Likewise. + * rust-lang.c (rust_language_data): Likewise. + 2020-06-02 Andrew Burgess * gdb/ada-lang.c (ada_language_defn): Convert to... diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index 620db0a49e7..0ae8756feed 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -497,19 +497,6 @@ ada_get_gdb_completer_word_break_characters (void) return ada_completer_word_break_characters; } -/* Print an array element index using the Ada syntax. */ - -static void -ada_print_array_index (struct type *index_type, LONGEST index, - struct ui_file *stream, - const struct value_print_options *options) -{ - struct value *index_value = val_atr (index_type, index); - - LA_VALUE_PRINT (index_value, stream, options); - fprintf_filtered (stream, " => "); -} - /* la_watch_location_expression for Ada. */ static gdb::unique_xmalloc_ptr @@ -14100,7 +14087,6 @@ extern const struct language_data ada_language_data = ada_get_gdb_completer_word_break_characters, ada_collect_symbol_completion_matches, ada_language_arch_info, - ada_print_array_index, default_pass_by_reference, ada_watch_location_expression, ada_get_symbol_name_matcher, /* la_get_symbol_name_matcher */ @@ -14121,6 +14107,19 @@ public: ada_language () : language_defn (language_ada, ada_language_data) { /* Nothing. */ } + + /* Print an array element index using the Ada syntax. */ + + void print_array_index (struct type *index_type, + LONGEST index, + struct ui_file *stream, + const value_print_options *options) const override + { + struct value *index_value = val_atr (index_type, index); + + LA_VALUE_PRINT (index_value, stream, options); + fprintf_filtered (stream, " => "); + } }; /* Single instance of the Ada language class. */ diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 4dac718cbac..dcf6ccda758 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -923,7 +923,6 @@ extern const struct language_data c_language_data = default_word_break_characters, default_collect_symbol_completion_matches, c_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ @@ -1084,7 +1083,6 @@ extern const struct language_data cplus_language_data = default_word_break_characters, default_collect_symbol_completion_matches, cplus_language_arch_info, - default_print_array_index, cp_pass_by_reference, c_watch_location_expression, cp_get_symbol_name_matcher, @@ -1154,7 +1152,6 @@ extern const struct language_data asm_language_data = default_word_break_characters, default_collect_symbol_completion_matches, c_language_arch_info, /* FIXME: la_language_arch_info. */ - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ @@ -1221,7 +1218,6 @@ extern const struct language_data minimal_language_data = default_word_break_characters, default_collect_symbol_completion_matches, c_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/d-lang.c b/gdb/d-lang.c index c572ad7890e..af8143b9b13 100644 --- a/gdb/d-lang.c +++ b/gdb/d-lang.c @@ -244,7 +244,6 @@ extern const struct language_data d_language_data = default_word_break_characters, default_collect_symbol_completion_matches, d_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/f-lang.c b/gdb/f-lang.c index 46d386e0477..7288e727421 100644 --- a/gdb/f-lang.c +++ b/gdb/f-lang.c @@ -672,7 +672,6 @@ extern const struct language_data f_language_data = f_word_break_characters, f_collect_symbol_completion_matches, f_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, cp_get_symbol_name_matcher, /* la_get_symbol_name_matcher */ diff --git a/gdb/go-lang.c b/gdb/go-lang.c index f0b560803cd..6ddeccef669 100644 --- a/gdb/go-lang.c +++ b/gdb/go-lang.c @@ -615,7 +615,6 @@ extern const struct language_data go_language_data = default_word_break_characters, default_collect_symbol_completion_matches, go_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/language.c b/gdb/language.c index b3cbd6aadef..de0f85669c4 100644 --- a/gdb/language.c +++ b/gdb/language.c @@ -650,12 +650,12 @@ default_word_break_characters (void) return " \t\n!@#$%^&*()+=|~`}{[]\"';:?/>.<,-"; } -/* Print the index of array elements using the C99 syntax. */ +/* See language.h. */ void -default_print_array_index (struct type *index_type, LONGEST index, - struct ui_file *stream, - const struct value_print_options *options) +language_defn::print_array_index (struct type *index_type, LONGEST index, + struct ui_file *stream, + const value_print_options *options) const { struct value *index_value = value_from_longest (index_type, index); @@ -849,7 +849,6 @@ extern const struct language_data unknown_language_data = default_word_break_characters, default_collect_symbol_completion_matches, unknown_language_arch_info, /* la_language_arch_info. */ - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ @@ -914,7 +913,6 @@ extern const struct language_data auto_language_data = default_word_break_characters, default_collect_symbol_completion_matches, unknown_language_arch_info, /* la_language_arch_info. */ - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/language.h b/gdb/language.h index 351ad490a83..8960f1ec53b 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -387,12 +387,6 @@ struct language_data 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 type *index_type, - LONGEST index_value, - struct ui_file *stream, - const struct value_print_options *options); - /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ struct language_pass_by_ref_info (*la_pass_by_reference) @@ -495,6 +489,14 @@ struct language_defn : language_data languages[lang] = this; } + /* Print the index of an element of an array. This default + implementation prints using C99 syntax. */ + + virtual void print_array_index (struct type *index_type, + LONGEST index_value, + struct ui_file *stream, + const value_print_options *options) const; + /* List of all known languages. */ static const struct language_defn *languages[nr_languages]; }; @@ -600,8 +602,8 @@ extern enum language set_language (enum language); (current_language->la_emitchar(ch, type, stream, quoter)) #define LA_PRINT_ARRAY_INDEX(index_type, index_value, stream, options) \ - (current_language->la_print_array_index(index_type, index_value, stream, \ - options)) + (current_language->print_array_index(index_type, index_value, stream, \ + options)) #define LA_ITERATE_OVER_SYMBOLS(BLOCK, NAME, DOMAIN, CALLBACK) \ (current_language->la_iterate_over_symbols (BLOCK, NAME, DOMAIN, CALLBACK)) @@ -663,11 +665,6 @@ extern char *language_class_name_from_physname (const struct language_defn *, /* Splitting strings into words. */ extern const char *default_word_break_characters (void); -/* Print the index of an array element using the C99 syntax. */ -extern void default_print_array_index (struct type *index_type, LONGEST index, - struct ui_file *stream, - const struct value_print_options *options); - /* Return information about whether TYPE should be passed (and returned) by reference at the language level. */ struct language_pass_by_ref_info language_pass_by_reference (struct type *type); diff --git a/gdb/m2-lang.c b/gdb/m2-lang.c index 57750b5cc46..b7d7681e3a6 100644 --- a/gdb/m2-lang.c +++ b/gdb/m2-lang.c @@ -413,7 +413,6 @@ extern const struct language_data m2_language_data = default_word_break_characters, default_collect_symbol_completion_matches, m2_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/objc-lang.c b/gdb/objc-lang.c index a1d035962c2..a877ed073de 100644 --- a/gdb/objc-lang.c +++ b/gdb/objc-lang.c @@ -402,7 +402,6 @@ extern const struct language_data objc_language_data = default_word_break_characters, default_collect_symbol_completion_matches, c_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/opencl-lang.c b/gdb/opencl-lang.c index 1a7425f8763..96d217a81c6 100644 --- a/gdb/opencl-lang.c +++ b/gdb/opencl-lang.c @@ -1079,7 +1079,6 @@ extern const struct language_data opencl_language_data = default_word_break_characters, default_collect_symbol_completion_matches, opencl_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_get_symbol_name_matcher */ diff --git a/gdb/p-lang.c b/gdb/p-lang.c index 2f9598fed94..06a2b435438 100644 --- a/gdb/p-lang.c +++ b/gdb/p-lang.c @@ -466,7 +466,6 @@ extern const struct language_data pascal_language_data = default_word_break_characters, default_collect_symbol_completion_matches, pascal_language_arch_info, - default_print_array_index, default_pass_by_reference, c_watch_location_expression, NULL, /* la_compare_symbol_for_completion */ diff --git a/gdb/rust-lang.c b/gdb/rust-lang.c index 152fe2f66c0..c02399c5c5c 100644 --- a/gdb/rust-lang.c +++ b/gdb/rust-lang.c @@ -2139,7 +2139,6 @@ extern const struct language_data rust_language_data = default_word_break_characters, default_collect_symbol_completion_matches, rust_language_arch_info, - default_print_array_index, default_pass_by_reference, rust_watch_location_expression, NULL, /* la_get_symbol_name_matcher */