aboutsummaryrefslogtreecommitdiff
path: root/gdb/language.h
diff options
context:
space:
mode:
authorAndrew Burgess <andrew.burgess@embecosm.com>2020-07-12 10:15:32 +0100
committerAndrew Burgess <andrew.burgess@embecosm.com>2020-09-16 11:01:24 +0100
commitefdf6a733d2a59a1a07ec61e848fa9e128259fe3 (patch)
tree896cf4b18a264b7128c28eaf84d4a694fc5eea01 /gdb/language.h
parentbf92aec5884b64a73a334aea875c68e8d1f959fc (diff)
downloadfsf-binutils-gdb-efdf6a733d2a59a1a07ec61e848fa9e128259fe3.zip
fsf-binutils-gdb-efdf6a733d2a59a1a07ec61e848fa9e128259fe3.tar.gz
fsf-binutils-gdb-efdf6a733d2a59a1a07ec61e848fa9e128259fe3.tar.bz2
gdb: Convert language_data::la_range_check to a method
Convert language_data::la_range_check member variable to a virtual method language_defn::range_checking_on_by_default. Where the previous member variable was of type 'enum range_check', the new member function returns a boolean that selects between range checking being on or off. This removes the possibility of a language having its default be the third enum state, range_check_warn, which no language currently used. This all makes sense I think, the language's true/false provides the default when the global 'set check range' is set to 'auto'. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_language_data): Remove la_range_check 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::range_checking_on_by_default): New member function. * go-lang.c (go_language_data): Remove la_range_check initializer. * language.c (enum range_mode): Moved here from language.h. (range_mode): Made static. (show_range_command): Update to use range_checking_on_by_default. (set_range_command): Likewise. (set_range_case): Likewise. (unknown_language_data): Remove la_range_check initializer. (auto_language_data): Likewise. * language.h (range_mode): Delete. Enum definition moved to language.c. (language_data): Remove la_range_check field. (language_defn::range_checking_on_by_default): New member function. * m2-lang.c (m2_language_data): Remove la_range_check initializer. (m2_language::range_checking_on_by_default): New member function. * objc-lang.c (objc_language_data): Remove la_range_check initializer. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_language_data): Likewise. (pascal_language::range_checking_on_by_default): New member function. * rust-lang.c (rust_language_data): Remove la_range_check initializer. (rust_language::range_checking_on_by_default): New member function.
Diffstat (limited to 'gdb/language.h')
-rw-r--r--gdb/language.h21
1 files changed, 7 insertions, 14 deletions
diff --git a/gdb/language.h b/gdb/language.h
index 10a9e70..ffdcdbc 100644
--- a/gdb/language.h
+++ b/gdb/language.h
@@ -42,16 +42,6 @@ class innermost_block_tracker;
#define MAX_FORTRAN_DIMS 7 /* Maximum number of F77 array dims. */
-/* range_mode ==
- range_mode_auto: range_check set automatically to default of language.
- range_mode_manual: range_check set manually by user. */
-
-extern enum range_mode
- {
- range_mode_auto, range_mode_manual
- }
-range_mode;
-
/* range_check ==
range_check_on: Ranges are checked in GDB expressions, producing errors.
range_check_warn: Ranges are checked, producing warnings.
@@ -188,10 +178,6 @@ extern const char *default_word_break_characters (void);
struct language_data
{
- /* Default range checking. */
-
- enum range_check la_range_check;
-
/* Default case sensitivity. */
enum case_sensitivity la_case_sensitivity;
@@ -572,6 +558,13 @@ struct language_defn : language_data
virtual bool store_sym_names_in_linkage_form_p () const
{ return false; }
+ /* Default range checking preference. The return value from this
+ function provides the automatic setting for 'set check range'. As a
+ consequence a user is free to override this setting if they want. */
+
+ virtual bool range_checking_on_by_default () const
+ { return false; }
+
protected:
/* This is the overridable part of the GET_SYMBOL_NAME_MATCHER method.