gdb: Remove language_data struct
authorAndrew Burgess <andrew.burgess@embecosm.com>
Tue, 4 Aug 2020 16:13:40 +0000 (17:13 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 16 Sep 2020 10:04:04 +0000 (11:04 +0100)
The language_data type, from which language_defn inherits, is now
empty, and this commit removes it.

Each language is updated to no longer create and use a language_data
struct.

There should be no user visible changes after this commit.

gdb/ChangeLog:

* ada-lang.c (ada_language_data): Delete.
(ada_language): Remove references to ada_language_data.
* c-lang.c (c_language_data): Delete.
(c_language): Remove references to c_language_data.
(cplus_language_data): Delete.
(cplus_language): Remove references to cplus_language_data.
(asm_language_data): Delete.
(asm_language): Remove references to asm_language_data.
(minimal_language_data): Delete.
(minimal_language): Remove references to minimal_language_data.
* d-lang.c (d_language_data): Delete.
(d_language): Remove references to d_language_data.
* f-lang.c (f_language_data): Delete.
(f_language): Remove references to f_language_data.
* go-lang.c (go_language_data): Delete.
(go_language): Remove references to go_language_data.
* language.c (unknown_language_data): Delete.
(unknown_language): Remove references to unknown_language_data.
(auto_language_data): Delete.
(auto_language): Remove references to auto_language_data.
* language.h (language_data): Delete struct.
(language_defn): No longer inherit from language_data.
* m2-lang.c (m2_language_data): Delete.
(m2_language): Remove references to m2_language_data.
* objc-lang.c (objc_language_data): Delete.
(objc_language): Remove references to objc_language_data.
* opencl-lang.c (opencl_language_data): Delete.
(opencl_language): Remove references to opencl_language_data.
* p-lang.c (pascal_language_data): Delete.
(pascal_language): Remove references to pascal_language_data.
* rust-lang.c (rust_language_data): Delete.
(rust_language): Remove references to rust_language_data.

13 files changed:
gdb/ChangeLog
gdb/ada-lang.c
gdb/c-lang.c
gdb/d-lang.c
gdb/f-lang.c
gdb/go-lang.c
gdb/language.c
gdb/language.h
gdb/m2-lang.c
gdb/objc-lang.c
gdb/opencl-lang.c
gdb/p-lang.c
gdb/rust-lang.c

index f1fcbcfa827031fcfd58612d595995b251efdf9f..bf73755c477eede5acec9d68ce5a71845109c225 100644 (file)
@@ -1,3 +1,38 @@
+2020-09-16  Andrew Burgess  <andrew.burgess@embecosm.com>
+
+       * ada-lang.c (ada_language_data): Delete.
+       (ada_language): Remove references to ada_language_data.
+       * c-lang.c (c_language_data): Delete.
+       (c_language): Remove references to c_language_data.
+       (cplus_language_data): Delete.
+       (cplus_language): Remove references to cplus_language_data.
+       (asm_language_data): Delete.
+       (asm_language): Remove references to asm_language_data.
+       (minimal_language_data): Delete.
+       (minimal_language): Remove references to minimal_language_data.
+       * d-lang.c (d_language_data): Delete.
+       (d_language): Remove references to d_language_data.
+       * f-lang.c (f_language_data): Delete.
+       (f_language): Remove references to f_language_data.
+       * go-lang.c (go_language_data): Delete.
+       (go_language): Remove references to go_language_data.
+       * language.c (unknown_language_data): Delete.
+       (unknown_language): Remove references to unknown_language_data.
+       (auto_language_data): Delete.
+       (auto_language): Remove references to auto_language_data.
+       * language.h (language_data): Delete struct.
+       (language_defn): No longer inherit from language_data.
+       * m2-lang.c (m2_language_data): Delete.
+       (m2_language): Remove references to m2_language_data.
+       * objc-lang.c (objc_language_data): Delete.
+       (objc_language): Remove references to objc_language_data.
+       * opencl-lang.c (opencl_language_data): Delete.
+       (opencl_language): Remove references to opencl_language_data.
+       * p-lang.c (pascal_language_data): Delete.
+       (pascal_language): Remove references to pascal_language_data.
+       * rust-lang.c (rust_language_data): Delete.
+       (rust_language): Remove references to rust_language_data.
+
 2020-09-16  Andrew Burgess  <andrew.burgess@embecosm.com>
 
        * ada-lang.c (ada_language_data): Remove la_op_print_tab
index edf0d6b135f1183263de5cca1abee697fc2069fb..0df406bff48d7584e6d3715bb67f494d8f27c52f 100644 (file)
@@ -13704,19 +13704,13 @@ ada_get_symbol_name_matcher (const lookup_name_info &lookup_name)
     }
 }
 
-/* Constant data that describes the Ada language.  */
-
-extern const struct language_data ada_language_data =
-{
-};
-
 /* Class representing the Ada language.  */
 
 class ada_language : public language_defn
 {
 public:
   ada_language ()
-    : language_defn (language_ada, ada_language_data)
+    : language_defn (language_ada)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 73968ed20f457eb72f250ff62e98a892ba3db0cf..4e942435177b0989585ae70544f3189397ce78ff 100644 (file)
@@ -871,19 +871,13 @@ const struct exp_descriptor exp_descriptor_c =
   evaluate_subexp_c
 };
 
-/* Constant data that describes the C language.  */
-
-extern const struct language_data c_language_data =
-{
-};
-
 /* Class representing the C language.  */
 
 class c_language : public language_defn
 {
 public:
   c_language ()
-    : language_defn (language_c, c_language_data)
+    : language_defn (language_c)
   { /* Nothing.  */ }
 
   /* See language.h.  */
@@ -989,19 +983,13 @@ enum cplus_primitive_types {
   nr_cplus_primitive_types
 };
 
-/* Constant data that describes the C++ language.  */
-
-extern const struct language_data cplus_language_data =
-{
-};
-
 /* A class for the C++ language.  */
 
 class cplus_language : public language_defn
 {
 public:
   cplus_language ()
-    : language_defn (language_cplus, cplus_language_data)
+    : language_defn (language_cplus)
   { /* Nothing.  */ }
 
   /* See language.h.  */
@@ -1210,19 +1198,13 @@ protected:
 
 static cplus_language cplus_language_defn;
 
-/* Constant data that describes the ASM language.  */
-
-extern const struct language_data asm_language_data =
-{
-};
-
 /* A class for the ASM language.  */
 
 class asm_language : public language_defn
 {
 public:
   asm_language ()
-    : language_defn (language_asm, asm_language_data)
+    : language_defn (language_asm)
   { /* Nothing.  */ }
 
   /* See language.h.  */
@@ -1286,22 +1268,16 @@ public:
 /* The single instance of the ASM language class.  */
 static asm_language asm_language_defn;
 
-/* The following language_defn does not represent a real language.
-   It just provides a minimal support a-la-C that should allow users
-   to do some simple operations when debugging applications that use
+/* A class for the minimal language.  This does not represent a real
+   language.  It just provides a minimal support a-la-C that should allow
+   users to do some simple operations when debugging applications that use
    a language currently not supported by GDB.  */
 
-extern const struct language_data minimal_language_data =
-{
-};
-
-/* A class for the minimal language.  */
-
 class minimal_language : public language_defn
 {
 public:
   minimal_language ()
-    : language_defn (language_minimal, minimal_language_data)
+    : language_defn (language_minimal)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index f9967868e1e0a80b7b9dd89044ca33a89e183a20..f9f1a66c3c21d34fee0c8aafee13392a7b8eeeea 100644 (file)
@@ -124,19 +124,13 @@ enum d_primitive_types {
   nr_d_primitive_types
 };
 
-/* Constant data that describes the D language.  */
-
-extern const struct language_data d_language_data =
-{
-};
-
 /* Class representing the D language.  */
 
 class d_language : public language_defn
 {
 public:
   d_language ()
-    : language_defn (language_d, d_language_data)
+    : language_defn (language_d)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 510d06737ead07b99a0fd76b806d0a94cd2a8573..8bc708dfa738681831fced66e81e2fd8345f509c 100644 (file)
@@ -482,19 +482,13 @@ static const struct exp_descriptor exp_descriptor_f =
   evaluate_subexp_f
 };
 
-/* Constant data that describes the Fortran language.  */
-
-extern const struct language_data f_language_data =
-{
-};
-
 /* Class representing the Fortran language.  */
 
 class f_language : public language_defn
 {
 public:
   f_language ()
-    : language_defn (language_fortran, f_language_data)
+    : language_defn (language_fortran)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 2b9be93b2e5c37cb7bb5d424ab382e90168d3010..0322961179f211cd92157afddf2ad60e10fe69e2 100644 (file)
@@ -504,19 +504,13 @@ enum go_primitive_types {
   nr_go_primitive_types
 };
 
-/* Constant data that describes the Go language.  */
-
-extern const struct language_data go_language_data =
-{
-};
-
 /* Class representing the Go language.  */
 
 class go_language : public language_defn
 {
 public:
   go_language ()
-    : language_defn (language_go, go_language_data)
+    : language_defn (language_go)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 37aef2cd73b9938c3e571a50a7c228c5b8ef5fd2..761f496697923e7a4d92f2af500c0f8254eea377 100644 (file)
@@ -812,19 +812,13 @@ unknown_language_arch_info (struct gdbarch *gdbarch,
                                                       struct type *);
 }
 
-/* Constant data that describes the unknown language.  */
-
-extern const struct language_data unknown_language_data =
-{
-};
-
 /* Class representing the unknown language.  */
 
 class unknown_language : public language_defn
 {
 public:
   unknown_language ()
-    : language_defn (language_unknown, unknown_language_data)
+    : language_defn (language_unknown)
   { /* Nothing.  */ }
 
   /* See language.h.  */
@@ -947,19 +941,13 @@ public:
 
 static unknown_language unknown_language_defn;
 
-/* Constant data for the fake "auto" language.  */
-
-extern const struct language_data auto_language_data =
-{
-};
-
 /* Class representing the fake "auto" language.  */
 
 class auto_language : public language_defn
 {
 public:
   auto_language ()
-    : language_defn (language_auto, auto_language_data)
+    : language_defn (language_auto)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 2d13cfa9db9819e51e0307541349c59147c816e7..3ee6476cbbb7e70fd0ec2a0b051257afeeff21dc 100644 (file)
@@ -152,31 +152,12 @@ struct language_pass_by_ref_info
 /* Splitting strings into words.  */
 extern const char *default_word_break_characters (void);
 
-/* Structure tying together assorted information about a language.
-
-   As we move over from the old structure based languages to a class
-   hierarchy of languages this structure will continue to contain a
-   mixture of both data and function pointers.
-
-   Once the class hierarchy of languages in place the first task is to
-   remove the function pointers from this structure and convert them into
-   member functions on the different language classes.
-
-   The current plan it to keep the constant data that describes a language
-   in this structure, and have each language pass in an instance of this
-   structure at construction time.  */
-
-struct language_data
-  {
-  };
-
 /* Base class from which all other language classes derive.  */
 
-struct language_defn : language_data
+struct language_defn
 {
-  language_defn (enum language lang, const language_data &init_data)
-    : language_data (init_data),
-      la_language (lang)
+  language_defn (enum language lang)
+    : la_language (lang)
   {
     /* We should only ever create one instance of each language.  */
     gdb_assert (languages[lang] == nullptr);
index 1f9c8a878e46dd23248ed3bd8daaca33cf2d9ebb..3cc0364b4a147c5d8cc1f2767e97b17af28c9753 100644 (file)
@@ -195,19 +195,13 @@ const struct exp_descriptor exp_descriptor_modula2 =
   evaluate_subexp_modula2
 };
 
-/* Constant data describing the M2 language.  */
-
-extern const struct language_data m2_language_data =
-{
-};
-
 /* Class representing the M2 language.  */
 
 class m2_language : public language_defn
 {
 public:
   m2_language ()
-    : language_defn (language_m2, m2_language_data)
+    : language_defn (language_m2)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index b59a45b49beb7f92edf0d2f100d89df1e50d93fe..9eaaf96a2a572710a27b4df3d1812a5361ee8ced 100644 (file)
@@ -319,19 +319,13 @@ static const struct op_print objc_op_print_tab[] =
     {NULL, OP_NULL, PREC_NULL, 0}
 };
 
-/* Constant data representing the Objective-C language.  */
-
-extern const struct language_data objc_language_data =
-{
-};
-
 /* Class representing the Objective-C language.  */
 
 class objc_language : public language_defn
 {
 public:
   objc_language ()
-    : language_defn (language_objc, objc_language_data)
+    : language_defn (language_objc)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index df99fdc2f4bf8d0e423dfc0fe98486d6f16deb8e..19de98b940a10c060c89626f20bf930b21a0c2c5 100644 (file)
@@ -1003,18 +1003,13 @@ const struct exp_descriptor exp_descriptor_opencl =
   evaluate_subexp_opencl
 };
 
-/* Constant data representing the OpenCL language.  */
-extern const struct language_data opencl_language_data =
-{
-};
-
 /* Class representing the OpenCL language.  */
 
 class opencl_language : public language_defn
 {
 public:
   opencl_language ()
-    : language_defn (language_opencl, opencl_language_data)
+    : language_defn (language_opencl)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 6a9811d869c9e1363c98f0f566001817bb82de9a..1867fd4b9432d5714164a723c6c1bd4701b44611 100644 (file)
@@ -248,19 +248,13 @@ enum pascal_primitive_types {
   nr_pascal_primitive_types
 };
 
-/* Constant data representing the Pascal language.  */
-
-extern const struct language_data pascal_language_data =
-{
-};
-
 /* Class representing the Pascal language.  */
 
 class pascal_language : public language_defn
 {
 public:
   pascal_language ()
-    : language_defn (language_pascal, pascal_language_data)
+    : language_defn (language_pascal)
   { /* Nothing.  */ }
 
   /* See language.h.  */
index 1971a8d3a38fdc41c26f9f8b45da4e1adbc4f8d8..f7c762eb640c1aadd573c443588db410d7b600e2 100644 (file)
@@ -1897,19 +1897,13 @@ static const struct exp_descriptor exp_descriptor_rust =
   rust_evaluate_subexp
 };
 
-/* Constant data representing the Rust language.  */
-
-extern const struct language_data rust_language_data =
-{
-};
-
 /* Class representing the Rust language.  */
 
 class rust_language : public language_defn
 {
 public:
   rust_language ()
-    : language_defn (language_rust, rust_language_data)
+    : language_defn (language_rust)
   { /* Nothing.  */ }
 
   /* See language.h.  */