diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-07-03 18:46:16 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-09-16 10:16:46 +0100 |
commit | e171d6f15e1a65a1fb5a951d2b186ed0c62aec0c (patch) | |
tree | 5d5fe46ff2eb9ff81ab28abb90126198fc9bf3b5 /gdb/ada-lang.c | |
parent | 6f7664a9c33b110248d0fb68bcc41fdb48396c51 (diff) | |
download | gdb-e171d6f15e1a65a1fb5a951d2b186ed0c62aec0c.zip gdb-e171d6f15e1a65a1fb5a951d2b186ed0c62aec0c.tar.gz gdb-e171d6f15e1a65a1fb5a951d2b186ed0c62aec0c.tar.bz2 |
gdb: Convert la_filename_extensions to a method
Convert language_data::la_filename_extensions member variable to a
virtual method language_defn::filename_extensions.
The new method returns a vector of filename extensions, which means
that where previously we needed a NULL marker on the end of the list,
we can now discard this.
All of the old arrays that contained the extensions now become static
data within each languages filename_extensions method.
I've updated the single use of the filename_extensions method to make
use of this method returning a vector. And, just in case anyone
accidentally adds a NULL marked into a languages extensions list, I've
added a new assert in add_filename_language (symtab.c) to catch this.
gdb/ChangeLog:
* ada-lang.c (ada_extensions): Delete, moved into
ada_language::filename_extensions.
(ada_language_data): Remove la_filename_extensions initializer.
(ada_language::filename_extensions): New member function.
* c-lang.c (c_extensions): Delete, moved into
c_language::filename_extensions.
(c_language_data): Remove la_filename_extensions initializer.
(c_language::filename_extensions): New member function.
(cplus_extensions): Delete, moved into
cplus_language::filename_extensions.
(cplus_language_data): Remove la_filename_extensions initializer.
(cplus_language::filename_extensions): New member function.
(asm_extensions): Delete, moved into
asm_language::filename_extensions.
(asm_language_data): Remove la_filename_extensions initializer.
(asm_language::filename_extensions): New member function.
(minimal_language_data): Remove la_filename_extensions
initializer.
* d-lang.c (d_extensions): Delete, moved into
d_language::filename_extensions.
(d_language_data): Remove la_filename_extensions initializer.
(d_language::filename_extensions): New member function.
* f-lang.c (f_extensions): Delete, moved into
f_language::filename_extensions.
(f_language_data): Remove la_filename_extensions initializer.
(f_language::filename_extensions): New member function.
* go-lang.c (go_language_data): Remove la_filename_extensions
initializer.
* language.c (add_set_language_command): Update now that
filename_extensions returns a vector.
(unknown_language_data): Remove la_filename_extensions
initializer.
(auto_language_data): Likewise.
* language.h (language_data): Remove la_filename_extensions field.
(language_defn::filename_extensions): New member function.
* m2-lang.c (m2_language_data): Remove la_filename_extensions
initializer.
* objc-lang.c (objc_extensions): Delete, moved into
objc_language::filename_extensions.
(objc_language_data): Remove la_filename_extensions initializer.
(objc_language::filename_extensions): New member function.
* opencl-lang.c (opencl_language_data): Remove
la_filename_extensions initializer.
* p-lang.c (pascal_extensions): Delete, moved into
pascal_language::filename_extensions.
(pascal_language_data): Remove la_filename_extensions initializer.
(pascal_language::filename_extensions): New member function.
* rust-lang.c (rust_extensions): Delete, moved into
rust_language::filename_extensions.
(rust_language_data): Remove la_filename_extensions initializer.
(rust_language::filename_extensions): New member function.
* symfile.c (add_filename_language): Add new assert.
Diffstat (limited to 'gdb/ada-lang.c')
-rw-r--r-- | gdb/ada-lang.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index fd9e6d3..b9cd9a3 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -13704,11 +13704,6 @@ ada_get_symbol_name_matcher (const lookup_name_info &lookup_name) } } -static const char * const ada_extensions[] = -{ - ".adb", ".ads", ".a", ".ada", ".dg", NULL -}; - /* Constant data that describes the Ada language. */ extern const struct language_data ada_language_data = @@ -13719,7 +13714,6 @@ extern const struct language_data ada_language_data = that's not quite what this means. */ array_row_major, macro_expansion_no, - ada_extensions, &ada_exp_descriptor, true, /* la_store_sym_names_in_linkage_form_p */ ada_op_print_tab, /* expression operators for printing */ @@ -13747,6 +13741,15 @@ public: const char *natural_name () const override { return "Ada"; } + /* See language.h. */ + + const std::vector<const char *> &filename_extensions () const override + { + static const std::vector<const char *> extensions + = { ".adb", ".ads", ".a", ".ada", ".dg" }; + return extensions; + } + /* Print an array element index using the Ada syntax. */ void print_array_index (struct type *index_type, |