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.
This commit is contained in:
parent
bf92aec588
commit
efdf6a733d
13 changed files with 83 additions and 33 deletions
|
@ -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.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue