diff options
author | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-07-12 10:15:32 +0100 |
---|---|---|
committer | Andrew Burgess <andrew.burgess@embecosm.com> | 2020-09-16 11:01:24 +0100 |
commit | efdf6a733d2a59a1a07ec61e848fa9e128259fe3 (patch) | |
tree | 896cf4b18a264b7128c28eaf84d4a694fc5eea01 /gdb/language.h | |
parent | bf92aec5884b64a73a334aea875c68e8d1f959fc (diff) | |
download | binutils-efdf6a733d2a59a1a07ec61e848fa9e128259fe3.zip binutils-efdf6a733d2a59a1a07ec61e848fa9e128259fe3.tar.gz binutils-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.h | 21 |
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. |