mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-03 04:01:22 +08:00
language_lookup_primitive_type, std::function -> gdb::function_view
gdb/ChangeLog: * language.c (language_arch_info::lookup_primitive_type): Use gdb::function_view instead of gdb::function. (template language_lookup_primitive_type): Rename to ... (language_lookup_primitive_type_1): ... this, and make static. (language_lookup_primitive_type(const struct language_defn *, struct gdbarch *, const char *): Make non-template. (language_lookup_primitive_type(const struct language_defn *, struct gdbarch *, std::function<bool (struct type *)>): Make non-template and use gdb::function_view. * language.h (language_arch_info::lookup_primitive_type): Use gdb::function_view instead of std::function. (language_lookup_primitive_type): No longer template. * opencl-lang.c (lookup_opencl_vector_type): 'filter' is now a lambda instead of a std::function.
This commit is contained in:
@ -1088,7 +1088,7 @@ language_arch_info::lookup_primitive_type (const char *name)
|
||||
|
||||
struct type *
|
||||
language_arch_info::lookup_primitive_type
|
||||
(std::function<bool (struct type *)> filter)
|
||||
(gdb::function_view<bool (struct type *)> filter)
|
||||
{
|
||||
for (struct type_and_symbol &tas : primitive_types_and_symbols)
|
||||
{
|
||||
@ -1111,32 +1111,39 @@ language_arch_info::lookup_primitive_type_as_symbol (const char *name,
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
/* Helper for the language_lookup_primitive_type overloads to forward
|
||||
to the corresponding language's lookup_primitive_type overload. */
|
||||
|
||||
template<typename T>
|
||||
struct type *
|
||||
language_lookup_primitive_type (const struct language_defn *la,
|
||||
struct gdbarch *gdbarch,
|
||||
T arg)
|
||||
static struct type *
|
||||
language_lookup_primitive_type_1 (const struct language_defn *la,
|
||||
struct gdbarch *gdbarch,
|
||||
T arg)
|
||||
{
|
||||
struct language_gdbarch *ld =
|
||||
(struct language_gdbarch *) gdbarch_data (gdbarch, language_gdbarch_data);
|
||||
return ld->arch_info[la->la_language].lookup_primitive_type (arg);
|
||||
}
|
||||
|
||||
/* Template instantiation. */
|
||||
/* See language.h. */
|
||||
|
||||
template struct type *
|
||||
struct type *
|
||||
language_lookup_primitive_type (const struct language_defn *la,
|
||||
struct gdbarch *gdbarch,
|
||||
const char *arg);
|
||||
const char *name)
|
||||
{
|
||||
return language_lookup_primitive_type_1 (la, gdbarch, name);
|
||||
}
|
||||
|
||||
/* Template instantiation. */
|
||||
/* See language.h. */
|
||||
|
||||
template struct type *
|
||||
struct type *
|
||||
language_lookup_primitive_type (const struct language_defn *la,
|
||||
struct gdbarch *gdbarch,
|
||||
std::function<bool (struct type *)> arg);
|
||||
gdb::function_view<bool (struct type *)> filter)
|
||||
{
|
||||
return language_lookup_primitive_type_1 (la, gdbarch, filter);
|
||||
}
|
||||
|
||||
/* See language.h. */
|
||||
|
||||
|
Reference in New Issue
Block a user