23#if !defined (LANGUAGE_H)
27#include "gdbsupport/function-view.h"
43#define MAX_FORTRAN_DIMS 7
106 gdb_assert (
type !=
nullptr);
117 gdb_assert (
type !=
nullptr);
132 gdb_assert (
type !=
nullptr);
143 (gdb::function_view<
bool (
struct type *)> filter);
279 virtual const char *
name ()
const = 0;
299 static const std::vector<const char *> no_extensions;
300 return no_extensions;
323 const struct block *var_block,
373 gdb::function_view<symbol_found_callback_ftype> callback)
const
375 return ::iterate_over_symbols (
block,
name, domain, callback);
417 const struct block *expr_block,
418 CORE_ADDR expr_pc)
const
420 gdb_assert_not_reached (
"language_defn::compute_program");
441 (
const char *mangled, gdb::unique_xmalloc_ptr<char> *demangled)
const
443 *demangled =
nullptr;
467 struct ui_file *stream,
int show,
int level,
476 return (CORE_ADDR) 0;
506 (tracker, mode, name_match_type, text, word,
"",
code);
522 (
struct type *
type, CORE_ADDR addr)
const;
534 (
struct value *val,
struct ui_file *stream,
int recurse,
545 struct ui_file *stream,
int quoter)
const;
548 struct ui_file * stream)
const;
556 const gdb_byte *
string,
unsigned int length,
557 const char *encoding,
int force_ellipses,
620 const char *ptr, ssize_t len)
const;
753 gdb::function_view<
bool (
struct type *)> filter);
768#define RANGE_CHECK (range_check != range_check_off)
772#define CAST_IS_CONVERSION(LANG) ((LANG)->la_language == language_c || \
773 (LANG)->la_language == language_cplus || \
774 (LANG)->la_language == language_objc)
791#define PRINT_LITERAL_FORM(c) \
793 && ((c) < 0x7F || (c) >= 0xA0) \
794 && (!sevenbit_strings || (c) < 0x80))
817 gdb::unique_xmalloc_ptr<gdb_byte> *buffer,
818 int *length, struct
type **char_type,
819 const
char **charset);
scoped_restore_current_language()
scoped_restore_current_language(const scoped_restore_current_language &)=delete
~scoped_restore_current_language()
scoped_switch_to_sym_language_if_auto(const struct symbol *sym)
DISABLE_COPY_AND_ASSIGN(scoped_switch_to_sym_language_if_auto)
~scoped_switch_to_sym_language_if_auto()
static void ATTRIBUTE_PRINTF(1, 0)
mach_port_t kern_return_t mach_port_t mach_msg_type_name_t msgportsPoly mach_port_t kern_return_t pid_t pid mach_port_t kern_return_t mach_port_t task mach_port_t kern_return_t int flags
const char lang_frame_mismatch_warn[]
void set_language(enum language lang)
void c_get_string(struct value *value, gdb::unique_xmalloc_ptr< gdb_byte > *buffer, int *length, struct type **char_type, const char **charset)
const struct language_defn * current_language
void enum language language_enum(const char *str)
const char * language_str(enum language)
struct language_pass_by_ref_info language_pass_by_reference(struct type *type)
struct type * language_lookup_primitive_type(const struct language_defn *l, struct gdbarch *gdbarch, const char *name)
const struct language_defn * expected_language
CORE_ADDR skip_language_trampoline(const frame_info_ptr &, CORE_ADDR pc)
symbol_name_matcher_ftype * get_symbol_name_matcher(const language_defn *lang, const lookup_name_info &lookup_name)
struct type * language_bool_type(const struct language_defn *l, struct gdbarch *gdbarch)
struct type * language_string_char_type(const struct language_defn *l, struct gdbarch *gdbarch)
const struct language_defn * language_def(enum language)
const char * default_word_break_characters(void)
struct symbol * language_lookup_primitive_type_as_symbol(const struct language_defn *l, struct gdbarch *gdbarch, const char *name)
void range_error(const char *,...) ATTRIBUTE_PRINTF(1
static struct symbol * new_symbol(struct die_info *, struct type *, struct dwarf2_cu *, struct symbol *=NULL)
enum language language() const
DISABLE_COPY_AND_ASSIGN(type_and_symbol)
type_and_symbol(type_and_symbol &&)=default
struct type * type() const
static struct symbol * alloc_type_symbol(enum language lang, struct type *type)
type_and_symbol(struct type *type)
struct symbol * symbol(enum language lang)
struct type * m_bool_type_default
struct type * bool_type() const
void set_string_char_type(struct type *type)
void add_primitive_type(struct type *type)
struct symbol * lookup_primitive_type_as_symbol(const char *name, enum language lang)
std::vector< type_and_symbol > primitive_types_and_symbols
language_arch_info()=default
const char * m_bool_type_name
void set_bool_type(struct type *type, const char *name=nullptr)
struct type * m_string_char_type
type_and_symbol * lookup_primitive_type_and_symbol(const char *name)
struct type * lookup_primitive_type(const char *name)
DISABLE_COPY_AND_ASSIGN(language_arch_info)
struct type * string_char_type() const
virtual bool is_string_type_p(struct type *type) const
virtual symbol_name_matcher_ftype * get_symbol_name_matcher_inner(const lookup_name_info &lookup_name) const
virtual const struct lang_varobj_ops * varobj_ops() const
virtual struct language_pass_by_ref_info pass_by_reference_info(struct type *type) const
virtual std::string compute_program(compile_instance *inst, const char *input, struct gdbarch *gdbarch, const struct block *expr_block, CORE_ADDR expr_pc) const
virtual void emitchar(int ch, struct type *chtype, struct ui_file *stream, int quoter) const
enum language la_language
virtual const char * name_of_this() const
virtual gdb::unique_xmalloc_ptr< char > watch_location_expression(struct type *type, CORE_ADDR addr) const
language_defn(enum language lang)
virtual const char * natural_name() const =0
virtual CORE_ADDR skip_trampoline(const frame_info_ptr &fi, CORE_ADDR pc) const
virtual bool can_print_type_offsets() const
virtual void print_type(struct type *type, const char *varstring, struct ui_file *stream, int show, int level, const struct type_print_options *flags) const =0
virtual bool sniff_from_mangled_name(const char *mangled, gdb::unique_xmalloc_ptr< char > *demangled) const
virtual const char * name() const =0
virtual void print_array_index(struct type *index_type, LONGEST index_value, struct ui_file *stream, const value_print_options *options) const
symbol_name_matcher_ftype * get_symbol_name_matcher(const lookup_name_info &lookup_name) const
virtual bool is_array_like(struct type *type) const
virtual bool symbol_printing_suppressed(struct symbol *symbol) const
virtual const char * struct_too_deep_ellipsis() const
virtual char * class_name_from_physname(const char *physname) const
virtual void value_print(struct value *val, struct ui_file *stream, const struct value_print_options *options) const
virtual bool store_sym_names_in_linkage_form_p() const
static const struct language_defn * languages[nr_languages]
virtual struct value * value_string(struct gdbarch *gdbarch, const char *ptr, ssize_t len) const
virtual bool range_checking_on_by_default() const
virtual bool iterate_over_symbols(const struct block *block, const lookup_name_info &name, domain_enum domain, gdb::function_view< symbol_found_callback_ftype > callback) const
virtual struct block_symbol lookup_symbol_nonlocal(const char *name, const struct block *block, const domain_enum domain) const
virtual int parser(struct parser_state *ps) const
virtual void printstr(struct ui_file *stream, struct type *elttype, const gdb_byte *string, unsigned int length, const char *encoding, int force_ellipses, const struct value_print_options *options) const
virtual struct type * lookup_transparent_type(const char *name) const
virtual void printchar(int ch, struct type *chtype, struct ui_file *stream) const
virtual void collect_symbol_completion_matches(completion_tracker &tracker, complete_symbol_mode mode, symbol_name_match_type name_match_type, const char *text, const char *word, enum type_code code) const
virtual void language_arch_info(struct gdbarch *, struct language_arch_info *) const =0
virtual struct value * read_var_value(struct symbol *var, const struct block *var_block, frame_info_ptr frame) const
virtual enum array_ordering array_ordering() const
virtual enum case_sensitivity case_sensitivity() const
virtual const char * get_digit_separator() const
virtual gdb::unique_xmalloc_ptr< char > demangle_symbol(const char *mangled, int options) const
virtual unsigned int search_name_hash(const char *name) const
virtual const char * word_break_characters(void) const
virtual void print_typedef(struct type *type, struct symbol *new_symbol, struct ui_file *stream) const
virtual char string_lower_bound() const
virtual struct value * to_array(struct value *val) const
virtual void value_print_inner(struct value *val, struct ui_file *stream, int recurse, const struct value_print_options *options) const
virtual std::unique_ptr< compile_instance > get_compile_instance() const
virtual bool c_style_arrays_p() const
virtual const std::vector< const char * > & filename_extensions() const
virtual enum macro_expansion macro_expansion() const
bool trivially_destructible
bool trivially_copy_constructible
struct type * basic_lookup_transparent_type(const char *name)
void default_collect_symbol_completion_matches_break_on(completion_tracker &tracker, complete_symbol_mode mode, symbol_name_match_type name_match_type, const char *text, const char *word, const char *break_on, enum type_code code)
bool symbol_name_matcher_ftype(const char *symbol_search_name, const lookup_name_info &lookup_name, completion_match_result *comp_match_res)