forked from Imagelibrary/binutils-gdb
gdb: Convert language la_is_string_type_p field to a method
This commit changes the language_data::la_is_string_type_p function pointer member variable into a member function of language_defn. There should be no user visible changes after this commit. gdb/ChangeLog: * ada-lang.c (ada_language_data): Delete la_is_string_type_p initializer. (ada_language::is_string_type_p): New member function. * c-lang.c (c_language_data): Delete la_is_string_type_p initializer. (cplus_language_data): Likewise. (asm_language_data): Likewise. (minimal_language_data): Likewise. * d-lang.c (d_language_data): Likewise. * f-lang.c (f_is_string_type_p): Delete function, implementation moved to f_language::is_string_type_p. (f_language_data): Delete la_is_string_type_p initializer. (f_language::is_string_type_p): New member function, implementation from f_is_string_type_p. * go-lang.c (go_is_string_type_p): Delete function, implementation moved to go_language::is_string_type_p. (go_language_data): Delete la_is_string_type_p initializer. (go_language::is_string_type_p): New member function, implementation from go_is_string_type_p. * language.c (language_defn::is_string_type_p): Define new member function. (default_is_string_type_p): Make static, add comment copied from header file. (unknown_language_data): Delete la_is_string_type_p initializer. (unknown_language::is_string_type_p): New member function. (auto_language_data): Delete la_is_string_type_p initializer. (auto_language::is_string_type_p): New member function. * language.h (language_data): Delete la_is_string_type_p field. (language_defn::is_string_type_p): Declare new function. (default_is_string_type_p): Delete desclaration, move comment to definition. * m2-lang.c (m2_is_string_type_p): Delete function, implementation moved to m2_language::is_string_type_p. (m2_language_data): Delete la_is_string_type_p initializer. (m2_language::is_string_type_p): New member function, implementation from m2_is_string_type_p. * objc-lang.c (objc_language_data): Delete la_is_string_type_p initializer. * opencl-lang.c (opencl_language_data): Likewise. * p-lang.c (pascal_is_string_type_p): Delete function, implementation moved to pascal_language::is_string_type_p. (pascal_language_data): Delete la_is_string_type_p initializer. (pascal_language::is_string_type_p): New member function, implementation from pascal_is_string_type_p. * rust-lang.c (rust_is_string_type_p): Delete function, implementation moved to rust_language::is_string_type_p. (rust_language_data): Delete la_is_string_type_p initializer. (rust_language::is_string_type_p): New member function, implementation from rust_is_string_type_p. * valprint.c (val_print_scalar_or_string_type_p): Update call to is_string_type_p.
This commit is contained in:
@@ -690,6 +690,14 @@ language_defn::print_typedef (struct type *type, struct symbol *new_symbol,
|
||||
c_print_typedef (type, new_symbol, stream);
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
|
||||
bool
|
||||
language_defn::is_string_type_p (struct type *type) const
|
||||
{
|
||||
return c_is_string_type_p (type);
|
||||
}
|
||||
|
||||
/* The default implementation of the get_symbol_name_matcher_inner method
|
||||
from the language_defn class. Matches with strncmp_iw. */
|
||||
|
||||
@@ -741,9 +749,10 @@ language_defn::get_symbol_name_matcher_inner
|
||||
return default_symbol_name_matcher;
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
/* Return true if TYPE is a string type, otherwise return false. This
|
||||
default implementation only detects TYPE_CODE_STRING. */
|
||||
|
||||
bool
|
||||
static bool
|
||||
default_is_string_type_p (struct type *type)
|
||||
{
|
||||
type = check_typedef (type);
|
||||
@@ -789,7 +798,6 @@ extern const struct language_data unknown_language_data =
|
||||
1, /* c-style arrays */
|
||||
0, /* String lower bound */
|
||||
&default_varobj_ops,
|
||||
default_is_string_type_p,
|
||||
"{...}" /* la_struct_too_deep_ellipsis */
|
||||
};
|
||||
|
||||
@@ -884,6 +892,13 @@ public:
|
||||
{
|
||||
error (_("unimplemented unknown_language::print_typedef called"));
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
|
||||
bool is_string_type_p (struct type *type) const override
|
||||
{
|
||||
return default_is_string_type_p (type);
|
||||
}
|
||||
};
|
||||
|
||||
/* Single instance of the unknown language class. */
|
||||
@@ -909,7 +924,6 @@ extern const struct language_data auto_language_data =
|
||||
1, /* c-style arrays */
|
||||
0, /* String lower bound */
|
||||
&default_varobj_ops,
|
||||
default_is_string_type_p,
|
||||
"{...}" /* la_struct_too_deep_ellipsis */
|
||||
};
|
||||
|
||||
@@ -1004,6 +1018,13 @@ public:
|
||||
{
|
||||
error (_("unimplemented auto_language::print_typedef called"));
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
|
||||
bool is_string_type_p (struct type *type) const override
|
||||
{
|
||||
return default_is_string_type_p (type);
|
||||
}
|
||||
};
|
||||
|
||||
/* Single instance of the fake "auto" language. */
|
||||
|
||||
Reference in New Issue
Block a user