aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.c
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-07-12 15:09:52 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-09-16 11:04:03 +0100
commit0d201fa46059ddd27980ccf8cca8488ac98b89be (patch)
tree3bbb11e9ef64b1a8a6781aed8f094a8f07286a9f /gdb/language.c
parentefdf6a733d2a59a1a07ec61e848fa9e128259fe3 (diff)
downloadgdb-0d201fa46059ddd27980ccf8cca8488ac98b89be.zip
gdb-0d201fa46059ddd27980ccf8cca8488ac98b89be.tar.gz
gdb-0d201fa46059ddd27980ccf8cca8488ac98b89be.tar.bz2
gdb: Convert language_data::la_case_sensitivity to a method
Convert language_data::la_case_sensitivity member variable to a virtual method language_defn::case_sensitivity. This is mostly straight forward. The only slight problem is that I ended up deleting this comment from ada-lang.c: /* Yes, Ada is case-insensitive, but that's not quite what this means. */ However, as the comment (which has existed since Ada support was first added to GDB) doesn't explain _why_ Ada sets case sensitivity to on despite being a generally case insensitive language, this doesn't really help me much. If I understood _why_ the setting doesn't quite mean what it seems to mean (at least as far as Ada is concerned) then I would extend the comment on language_defn::case_sensitivity (in language.h) to include the detail, and note how this impacts Ada. But as it stands I've just deleted the comment for now. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_language_data): Remove la_case_sensitivity initializer. * c-lang.c (c_language_data): Likewise. (cplus_language_data): Likewise. (asm_language_data): Likewise. (minimal_language_data): Likewise. * d-lang.c (d_language_data): Likewise. * f-lang.c (f_language_data): Likewise. (f_language::case_sensitivity): New member function. * go-lang.c (go_language_data): Remove la_case_sensitivity initializer. * language.c (enum case_mode): Moved here from language.h. (case_mode): Make static. (show_case_command): Update for case_sensitivity being a method. (set_case_command): Likewise. (set_range_case): Likewise. (unknown_language_data): Remove la_case_sensitivity initializer. (auto_language_data): Likewise. * language.h (case_mode): Delete, move enum declaration to language.c. (language_data): Delete la_case_sensitivity field. (language_defn::case_sensitivity): New member function. * m2-lang.c (m2_language_data): Remove la_case_sensitivity 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.
Diffstat (limited to 'gdb/language.c')
-rw-r--r--gdb/language.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/gdb/language.c b/gdb/language.c
index 56b3b2e..41fdf35 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -58,6 +58,15 @@ enum range_mode
range_mode_auto, range_mode_manual
};
+/* case_mode ==
+ case_mode_auto: case_sensitivity set upon selection of scope.
+ case_mode_manual: case_sensitivity set only by user. */
+
+enum case_mode
+ {
+ case_mode_auto, case_mode_manual
+ };
+
/* The current (default at startup) state of type and range checking.
(If the modes are set to "auto", though, these are changed based
on the default language at startup, and then again based on the
@@ -65,7 +74,7 @@ enum range_mode
static enum range_mode range_mode = range_mode_auto;
enum range_check range_check = range_check_off;
-enum case_mode case_mode = case_mode_auto;
+static enum case_mode case_mode = case_mode_auto;
enum case_sensitivity case_sensitivity = case_sensitive_on;
/* The current language and language_mode (see language.h). */
@@ -296,7 +305,7 @@ show_case_command (struct ui_file *file, int from_tty,
_("Case sensitivity in name search is \"%s\".\n"),
value);
- if (case_sensitivity != current_language->la_case_sensitivity)
+ if (case_sensitivity != current_language->case_sensitivity ())
warning (_("the current case sensitivity setting does not match "
"the language.\n"));
}
@@ -329,7 +338,7 @@ set_case_command (const char *ignore, int from_tty, struct cmd_list_element *c)
case_sensitive);
}
- if (case_sensitivity != current_language->la_case_sensitivity)
+ if (case_sensitivity != current_language->case_sensitivity ())
warning (_("the current case sensitivity setting does not match "
"the language.\n"));
}
@@ -346,7 +355,7 @@ set_range_case (void)
? range_check_on : range_check_off);
if (case_mode == case_mode_auto)
- case_sensitivity = current_language->la_case_sensitivity;
+ case_sensitivity = current_language->case_sensitivity ();
}
/* Set current language to (enum language) LANG. Returns previous
@@ -789,7 +798,6 @@ unknown_language_arch_info (struct gdbarch *gdbarch,
extern const struct language_data unknown_language_data =
{
- case_sensitive_on,
array_row_major,
macro_expansion_no,
&exp_descriptor_standard,
@@ -925,7 +933,6 @@ static unknown_language unknown_language_defn;
extern const struct language_data auto_language_data =
{
- case_sensitive_on,
array_row_major,
macro_expansion_no,
&exp_descriptor_standard,