mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-02 04:27:46 +08:00
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.
This commit is contained in:
@ -1,3 +1,32 @@
|
|||||||
|
2020-06-02 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
|
* 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 <andrew.burgess@embecosm.com>
|
2020-06-02 Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
|
||||||
* gdb/ada-lang.c (ada_language_defn): Convert to...
|
* gdb/ada-lang.c (ada_language_defn): Convert to...
|
||||||
|
@ -497,19 +497,6 @@ ada_get_gdb_completer_word_break_characters (void)
|
|||||||
return ada_completer_word_break_characters;
|
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. */
|
/* la_watch_location_expression for Ada. */
|
||||||
|
|
||||||
static gdb::unique_xmalloc_ptr<char>
|
static gdb::unique_xmalloc_ptr<char>
|
||||||
@ -14100,7 +14087,6 @@ extern const struct language_data ada_language_data =
|
|||||||
ada_get_gdb_completer_word_break_characters,
|
ada_get_gdb_completer_word_break_characters,
|
||||||
ada_collect_symbol_completion_matches,
|
ada_collect_symbol_completion_matches,
|
||||||
ada_language_arch_info,
|
ada_language_arch_info,
|
||||||
ada_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
ada_watch_location_expression,
|
ada_watch_location_expression,
|
||||||
ada_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
|
ada_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
|
||||||
@ -14121,6 +14107,19 @@ public:
|
|||||||
ada_language ()
|
ada_language ()
|
||||||
: language_defn (language_ada, ada_language_data)
|
: language_defn (language_ada, ada_language_data)
|
||||||
{ /* Nothing. */ }
|
{ /* 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. */
|
/* Single instance of the Ada language class. */
|
||||||
|
@ -923,7 +923,6 @@ extern const struct language_data c_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
c_language_arch_info,
|
c_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
@ -1084,7 +1083,6 @@ extern const struct language_data cplus_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
cplus_language_arch_info,
|
cplus_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
cp_pass_by_reference,
|
cp_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
cp_get_symbol_name_matcher,
|
cp_get_symbol_name_matcher,
|
||||||
@ -1154,7 +1152,6 @@ extern const struct language_data asm_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
c_language_arch_info, /* FIXME: la_language_arch_info. */
|
c_language_arch_info, /* FIXME: la_language_arch_info. */
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
@ -1221,7 +1218,6 @@ extern const struct language_data minimal_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
c_language_arch_info,
|
c_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -244,7 +244,6 @@ extern const struct language_data d_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
d_language_arch_info,
|
d_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -672,7 +672,6 @@ extern const struct language_data f_language_data =
|
|||||||
f_word_break_characters,
|
f_word_break_characters,
|
||||||
f_collect_symbol_completion_matches,
|
f_collect_symbol_completion_matches,
|
||||||
f_language_arch_info,
|
f_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
cp_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
|
cp_get_symbol_name_matcher, /* la_get_symbol_name_matcher */
|
||||||
|
@ -615,7 +615,6 @@ extern const struct language_data go_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
go_language_arch_info,
|
go_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -650,12 +650,12 @@ default_word_break_characters (void)
|
|||||||
return " \t\n!@#$%^&*()+=|~`}{[]\"';:?/>.<,-";
|
return " \t\n!@#$%^&*()+=|~`}{[]\"';:?/>.<,-";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print the index of array elements using the C99 syntax. */
|
/* See language.h. */
|
||||||
|
|
||||||
void
|
void
|
||||||
default_print_array_index (struct type *index_type, LONGEST index,
|
language_defn::print_array_index (struct type *index_type, LONGEST index,
|
||||||
struct ui_file *stream,
|
struct ui_file *stream,
|
||||||
const struct value_print_options *options)
|
const value_print_options *options) const
|
||||||
{
|
{
|
||||||
struct value *index_value = value_from_longest (index_type, index);
|
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_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
unknown_language_arch_info, /* la_language_arch_info. */
|
unknown_language_arch_info, /* la_language_arch_info. */
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
@ -914,7 +913,6 @@ extern const struct language_data auto_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
unknown_language_arch_info, /* la_language_arch_info. */
|
unknown_language_arch_info, /* la_language_arch_info. */
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -387,12 +387,6 @@ struct language_data
|
|||||||
void (*la_language_arch_info) (struct gdbarch *,
|
void (*la_language_arch_info) (struct gdbarch *,
|
||||||
struct language_arch_info *);
|
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
|
/* Return information about whether TYPE should be passed
|
||||||
(and returned) by reference at the language level. */
|
(and returned) by reference at the language level. */
|
||||||
struct language_pass_by_ref_info (*la_pass_by_reference)
|
struct language_pass_by_ref_info (*la_pass_by_reference)
|
||||||
@ -495,6 +489,14 @@ struct language_defn : language_data
|
|||||||
languages[lang] = this;
|
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. */
|
/* List of all known languages. */
|
||||||
static const struct language_defn *languages[nr_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))
|
(current_language->la_emitchar(ch, type, stream, quoter))
|
||||||
|
|
||||||
#define LA_PRINT_ARRAY_INDEX(index_type, index_value, stream, options) \
|
#define LA_PRINT_ARRAY_INDEX(index_type, index_value, stream, options) \
|
||||||
(current_language->la_print_array_index(index_type, index_value, stream, \
|
(current_language->print_array_index(index_type, index_value, stream, \
|
||||||
options))
|
options))
|
||||||
|
|
||||||
#define LA_ITERATE_OVER_SYMBOLS(BLOCK, NAME, DOMAIN, CALLBACK) \
|
#define LA_ITERATE_OVER_SYMBOLS(BLOCK, NAME, DOMAIN, CALLBACK) \
|
||||||
(current_language->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. */
|
/* Splitting strings into words. */
|
||||||
extern const char *default_word_break_characters (void);
|
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
|
/* Return information about whether TYPE should be passed
|
||||||
(and returned) by reference at the language level. */
|
(and returned) by reference at the language level. */
|
||||||
struct language_pass_by_ref_info language_pass_by_reference (struct type *type);
|
struct language_pass_by_ref_info language_pass_by_reference (struct type *type);
|
||||||
|
@ -413,7 +413,6 @@ extern const struct language_data m2_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
m2_language_arch_info,
|
m2_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -402,7 +402,6 @@ extern const struct language_data objc_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
c_language_arch_info,
|
c_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -1079,7 +1079,6 @@ extern const struct language_data opencl_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
opencl_language_arch_info,
|
opencl_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
@ -466,7 +466,6 @@ extern const struct language_data pascal_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
pascal_language_arch_info,
|
pascal_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
c_watch_location_expression,
|
c_watch_location_expression,
|
||||||
NULL, /* la_compare_symbol_for_completion */
|
NULL, /* la_compare_symbol_for_completion */
|
||||||
|
@ -2139,7 +2139,6 @@ extern const struct language_data rust_language_data =
|
|||||||
default_word_break_characters,
|
default_word_break_characters,
|
||||||
default_collect_symbol_completion_matches,
|
default_collect_symbol_completion_matches,
|
||||||
rust_language_arch_info,
|
rust_language_arch_info,
|
||||||
default_print_array_index,
|
|
||||||
default_pass_by_reference,
|
default_pass_by_reference,
|
||||||
rust_watch_location_expression,
|
rust_watch_location_expression,
|
||||||
NULL, /* la_get_symbol_name_matcher */
|
NULL, /* la_get_symbol_name_matcher */
|
||||||
|
Reference in New Issue
Block a user