gdb: Convert la_store_sym_names_in_linkage_form_p to a method

Convert language_data::la_store_sym_names_in_linkage_form_p member
variable to language_defn::store_sym_names_in_linkage_form_p virtual
function.

There should be no user visible changes after this commit.

gdb/ChangeLog:

	* ada-lang.c (ada_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	(ada_language::store_sym_names_in_linkage_form_p): New member
	function.
	* c-lang.c (c_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	(c_language::store_sym_names_in_linkage_form_p): New member
	function.
	(cplus_language_data): Remove la_store_sym_names_in_linkage_form_p
	initializer.
	(asm_language_data): Likewise.
	(asm_language::store_sym_names_in_linkage_form_p): New member
	function.
	(minimal_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	(minimal_language::store_sym_names_in_linkage_form_p): New member
	function.
	* d-lang.c (d_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	* dwarf2/read.c (dwarf2_physname): Update call to
	store_sym_names_in_linkage_form_p.
	* f-lang.c (f_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	* go-lang.c (go_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	* language.c (unknown_language_data): Remove
	la_store_sym_names_in_linkage_form_p initializer.
	(unknown_language::store_sym_names_in_linkage_form_p): New member
	function.
	(auto_language_data): Remove la_store_sym_names_in_linkage_form_p
	initializer.
	(auto_language::store_sym_names_in_linkage_form_p): New member
	function.
	* language.h (language_data): Remove
	la_store_sym_names_in_linkage_form_p member variable.
	(language_defn::store_sym_names_in_linkage_form_p): New member
	function.
	* m2-lang.c (m2_language_data): Remove
	la_store_sym_names_in_linkage_form_p 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:
Andrew Burgess
2020-07-08 10:55:56 +01:00
parent 22c12a6c70
commit d3355e4dec
14 changed files with 93 additions and 38 deletions

View File

@@ -206,28 +206,6 @@ struct language_data
const struct exp_descriptor *la_exp_desc;
/* Now come some hooks for lookup_symbol. */
/* True if the symbols names should be stored in GDB's data structures
for minimal/partial/full symbols using their linkage (aka mangled)
form; false if the symbol names should be demangled first.
Most languages implement symbol lookup by comparing the demangled
names, in which case it is advantageous to store that information
already demangled, and so would set this field to false.
On the other hand, some languages have opted for doing symbol
lookups by comparing mangled names instead, for reasons usually
specific to the language. Those languages should set this field
to true.
And finally, other languages such as C or Asm do not have
the concept of mangled vs demangled name, so those languages
should set this field to true as well, to prevent any accidental
demangling through an unrelated language's demangler. */
const bool la_store_sym_names_in_linkage_form_p;
/* Table for printing expressions. */
const struct op_print *la_op_print_tab;
@@ -573,6 +551,27 @@ struct language_defn : language_data
virtual char string_lower_bound () const
{ return c_style_arrays_p () ? 0 : 1; }
/* Returns true if the symbols names should be stored in GDB's data
structures for minimal/partial/full symbols using their linkage (aka
mangled) form; false if the symbol names should be demangled first.
Most languages implement symbol lookup by comparing the demangled
names, in which case it is advantageous to store that information
already demangled, and so would return false, which is the default.
On the other hand, some languages have opted for doing symbol lookups
by comparing mangled names instead, for reasons usually specific to
the language. Those languages should override this function and
return true.
And finally, other languages such as C or Asm do not have the concept
of mangled vs demangled name, so those languages should also override
this function and return true, to prevent any accidental demangling
through an unrelated language's demangler. */
virtual bool store_sym_names_in_linkage_form_p () const
{ return false; }
protected:
/* This is the overridable part of the GET_SYMBOL_NAME_MATCHER method.