GDB (xrefs)
|
#include "defs.h"
#include "symtab.h"
#include "gdbtypes.h"
#include "value.h"
#include "frame.h"
#include "inferior.h"
#include "gdbcore.h"
#include "target.h"
#include "demangle.h"
#include "language.h"
#include "gdbcmd.h"
#include "regcache.h"
#include "cp-abi.h"
#include "block.h"
#include "infcall.h"
#include "dictionary.h"
#include "cp-support.h"
#include "target-float.h"
#include "tracepoint.h"
#include "observable.h"
#include "objfiles.h"
#include "extension.h"
#include "gdbsupport/byte-vector.h"
#include "typeprint.h"
Go to the source code of this file.
Classes | |
struct | struct_field_searcher |
struct | struct_field_searcher::found_field |
Enumerations | |
enum | oload_classification { STANDARD , NON_STANDARD , INCOMPATIBLE } |
Functions | |
static int | typecmp (bool staticp, bool varargs, int nargs, struct field t1[], const gdb::array_view< value * > t2) |
static struct value * | search_struct_field (const char *, struct value *, struct type *, int) |
static struct value * | search_struct_method (const char *, struct value **, gdb::optional< gdb::array_view< value * > >, LONGEST, int *, struct type *) |
static int | find_oload_champ_namespace (gdb::array_view< value * > args, const char *, const char *, std::vector< symbol * > *oload_syms, badness_vector *, const int no_adl) |
static int | find_oload_champ_namespace_loop (gdb::array_view< value * > args, const char *, const char *, int, std::vector< symbol * > *oload_syms, badness_vector *, int *, const int no_adl) |
static int | find_oload_champ (gdb::array_view< value * > args, size_t num_fns, fn_field *methods, xmethod_worker_up *xmethods, symbol **functions, badness_vector *oload_champ_bv) |
static int | oload_method_static_p (struct fn_field *, int) |
static enum oload_classification | classify_oload_match (const badness_vector &, int, int) |
static struct value * | value_struct_elt_for_reference (struct type *, int, struct type *, const char *, struct type *, int, enum noside) |
static struct value * | value_namespace_elt (const struct type *, const char *, int, enum noside) |
static struct value * | value_maybe_namespace_elt (const struct type *, const char *, int, enum noside) |
static CORE_ADDR | allocate_space_in_inferior (int) |
static struct value * | cast_into_complex (struct type *, struct value *) |
static void | show_overload_resolution (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value) |
struct value * | find_function_in_inferior (const char *name, struct objfile **objf_p) |
struct value * | value_allocate_space_in_inferior (int len) |
static struct value * | value_cast_structs (struct type *type, struct value *v2) |
struct value * | value_cast_pointers (struct type *type, struct value *arg2, int subclass_check) |
gdb_mpq | value_to_gdb_mpq (struct value *value) |
static struct value * | value_cast_to_fixed_point (struct type *to_type, struct value *from_val) |
struct value * | value_cast (struct type *type, struct value *arg2) |
struct value * | value_reinterpret_cast (struct type *type, struct value *arg) |
static int | dynamic_cast_check_1 (struct type *desired_type, const gdb_byte *valaddr, LONGEST embedded_offset, CORE_ADDR address, struct value *val, struct type *search_type, CORE_ADDR arg_addr, struct type *arg_type, struct value **result) |
static int | dynamic_cast_check_2 (struct type *desired_type, const gdb_byte *valaddr, LONGEST embedded_offset, CORE_ADDR address, struct value *val, struct type *search_type, struct value **result) |
struct value * | value_dynamic_cast (struct type *type, struct value *arg) |
struct value * | value_one (struct type *type) |
static struct value * | get_value_at (struct type *type, CORE_ADDR addr, frame_info_ptr frame, int lazy) |
struct value * | value_at (struct type *type, CORE_ADDR addr) |
struct value * | value_at_non_lval (struct type *type, CORE_ADDR addr) |
struct value * | value_at_lazy (struct type *type, CORE_ADDR addr, frame_info_ptr frame) |
void | read_value_memory (struct value *val, LONGEST bit_offset, bool stack, CORE_ADDR memaddr, gdb_byte *buffer, size_t length) |
struct value * | value_assign (struct value *toval, struct value *fromval) |
struct value * | value_repeat (struct value *arg1, int count) |
struct value * | value_of_variable (struct symbol *var, const struct block *b) |
struct value * | address_of_variable (struct symbol *var, const struct block *b) |
bool | value_must_coerce_to_target (struct value *val) |
struct value * | value_coerce_to_target (struct value *val) |
struct value * | value_coerce_array (struct value *arg1) |
struct value * | value_coerce_function (struct value *arg1) |
struct value * | value_addr (struct value *arg1) |
struct value * | value_ref (struct value *arg1, enum type_code refcode) |
struct value * | value_ind (struct value *arg1) |
struct value * | value_array (int lowbound, gdb::array_view< struct value * > elemvec) |
struct value * | value_cstring (const gdb_byte *ptr, ssize_t count, struct type *char_type) |
struct value * | value_string (const gdb_byte *ptr, ssize_t count, struct type *char_type) |
static int | typecmp (bool staticp, bool varargs, int nargs, struct field t1[], gdb::array_view< value * > t2) |
struct value * | value_struct_elt (struct value **argp, gdb::optional< gdb::array_view< value * > > args, const char *name, int *static_memfuncp, const char *err) |
struct value * | value_struct_elt_bitpos (struct value **argp, int bitpos, struct type *ftype, const char *err) |
static void | find_method_list (struct value **argp, const char *method, LONGEST offset, struct type *type, gdb::array_view< fn_field > *methods, std::vector< xmethod_worker_up > *xmethods, struct type **basetype, LONGEST *boffset) |
static void | value_find_oload_method_list (struct value **argp, const char *method, LONGEST offset, gdb::array_view< fn_field > *methods, std::vector< xmethod_worker_up > *xmethods, struct type **basetype, LONGEST *boffset) |
static std::string | incomplete_type_hint (gdb::array_view< value * > args) |
int | find_overload_match (gdb::array_view< value * > args, const char *name, enum oload_search_type method, struct value **objp, struct symbol *fsym, struct value **valp, struct symbol **symp, int *staticp, const int no_adl, const enum noside noside) |
int | destructor_name_p (const char *name, struct type *type) |
static struct value * | enum_constant_from_type (struct type *type, const char *name) |
struct value * | value_aggregate_elt (struct type *curtype, const char *name, struct type *expect_type, int want_address, enum noside noside) |
static int | compare_parameters (struct type *t1, struct type *t2, int skip_artificial) |
static bool | get_baseclass_offset (struct type *vt, struct type *cls, struct value *v, int *boffs, bool *isvirt) |
struct type * | value_rtti_indirect_type (struct value *v, int *full, LONGEST *top, int *using_enc) |
struct value * | value_full_object (struct value *argp, struct type *rtype, int xfull, int xtop, int xusing_enc) |
struct value * | value_of_this (const struct language_defn *lang) |
struct value * | value_of_this_silent (const struct language_defn *lang) |
struct value * | value_slice (struct value *array, int lowbound, int length) |
struct value * | value_literal_complex (struct value *arg1, struct value *arg2, struct type *type) |
struct value * | value_real_part (struct value *value) |
struct value * | value_imaginary_part (struct value *value) |
void | _initialize_valops () |
Variables | |
bool | overload_resolution = false |
enum oload_classification |
void _initialize_valops | ( | ) |
Definition at line 4170 of file valops.c.
Referenced by initialize_all_files().
Definition at line 1397 of file valops.c.
References value::address, type::code(), frame_find_by_id(), gdbarch_register_name(), get_frame_arch(), value::lazy(), lookup_pointer_type(), value::lval(), lval_memory, lval_register, general_symbol_info::print_name(), symbol::type(), value::type(), value_from_pointer(), VALUE_NEXT_FRAME_ID, value_of_variable(), and VALUE_REGNUM.
Referenced by expr::var_value_operation::evaluate_for_address(), expr::rust_structop::evaluate_funcall(), and expr::var_value_operation::evaluate_with_coercion().
|
static |
Definition at line 196 of file valops.c.
References value_allocate_space_in_inferior(), and value_as_long().
Referenced by value_coerce_to_target().
Definition at line 4141 of file valops.c.
References value::allocate(), type::code(), value::contents(), value::contents_raw(), value::copy(), type::length(), not_lval, type::target_type(), value::type(), value_literal_complex(), and value::zero().
Referenced by value_cast().
|
static |
Definition at line 3333 of file valops.c.
References compare_ranks(), INCOMPATIBLE, INCOMPATIBLE_TYPE_BADNESS, NON_STANDARD, NS_POINTER_CONVERSION_BADNESS, and STANDARD.
Referenced by find_oload_champ_namespace_loop(), and find_overload_match().
Definition at line 3463 of file valops.c.
References type::code(), compare_ranks(), EXACT_MATCH_BADNESS, type::field(), field::is_artificial(), type::num_fields(), rank_one_type(), and field::type().
Referenced by value_struct_elt_for_reference().
int destructor_name_p | ( | const char * | name, |
struct type * | type ) |
Definition at line 3366 of file valops.c.
References name, and type_name_or_error().
Referenced by yyparse().
|
static |
Definition at line 725 of file valops.c.
References baseclass_offset(), class_types_same_p(), dynamic_cast_check_1(), type::length(), TYPE_BASECLASS, TYPE_N_BASECLASSES, and value_at_lazy().
Referenced by dynamic_cast_check_1(), and value_dynamic_cast().
|
static |
Definition at line 773 of file valops.c.
References baseclass_offset(), BASETYPE_VIA_PUBLIC, class_types_same_p(), dynamic_cast_check_2(), TYPE_BASECLASS, TYPE_N_BASECLASSES, and value_at_lazy().
Referenced by dynamic_cast_check_2(), and value_dynamic_cast().
Definition at line 3392 of file valops.c.
References type::code(), type::field(), FIELD_LOC_KIND_ENUMVAL, type::is_declared_class(), field::loc_enumval(), field::loc_kind(), name, field::name(), type::name(), type::num_fields(), TYPE_N_BASECLASSES, and value_from_longest().
Referenced by value_aggregate_elt().
Definition at line 117 of file valops.c.
References symbol::aclass(), objfile::arch(), block_symbol::block, LOC_BLOCK, lookup_bound_minimal_symbol(), lookup_function_type(), lookup_pointer_type(), lookup_symbol(), bound_minimal_symbol::minsym, name, bound_minimal_symbol::objfile, symbol::objfile(), block_symbol::symbol, target_has_execution(), type, bound_minimal_symbol::value_address(), value_from_pointer(), value_of_variable(), and VAR_DOMAIN.
Referenced by call_function_by_hand_dummy(), call_target_sbrk(), checkpoint_command(), eval_op_objc_msgcall(), inferior_call_waitpid(), linux_infcall_mmap(), linux_infcall_munmap(), lookup_child_selector(), lookup_objc_class(), print_object_command(), value_allocate_space_in_inferior(), and value_nsstring().
|
static |
Definition at line 2493 of file valops.c.
References baseclass_offset(), BASETYPE_VIA_VIRTUAL, check_stub_method_group(), check_typedef(), f(), find_method_list(), get_matching_xmethod_workers(), strcmp_iw(), type, TYPE_BASECLASS, TYPE_BASECLASS_BITPOS, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_N_BASECLASSES, and TYPE_NFN_FIELDS.
Referenced by find_method_list(), and value_find_oload_method_list().
|
static |
Definition at line 3201 of file valops.c.
References compare_badness(), type::field(), gdb_printf(), gdb_stderr, type::num_fields(), oload_method_static_p(), overload_debug, rank_function(), field::type(), symbol::type(), TYPE_FN_FIELD_ARGS, and TYPE_FN_FIELD_TYPE.
Referenced by find_oload_champ_namespace_loop(), and find_overload_match().
|
static |
Definition at line 3059 of file valops.c.
References find_oload_champ_namespace_loop().
Referenced by find_overload_match().
|
static |
Definition at line 3085 of file valops.c.
References add_symbol_overload_list_adl(), classify_oload_match(), cp_find_first_component(), find_oload_champ(), find_oload_champ_namespace_loop(), make_symbol_overload_list(), and STANDARD.
Referenced by find_oload_champ_namespace(), and find_oload_champ_namespace_loop().
int find_overload_match | ( | gdb::array_view< value * > | args, |
const char * | name, | ||
enum oload_search_type | method, | ||
struct value ** | objp, | ||
struct symbol * | fsym, | ||
struct value ** | valp, | ||
struct symbol ** | symp, | ||
int * | staticp, | ||
const int | no_adl, | ||
const enum noside noside noside | ) |
Definition at line 2710 of file valops.c.
References BOTH, check_typedef(), classify_oload_match(), type::code(), coerce_ref(), compare_badness(), cp_func_name(), EVAL_AVOID_SIDE_EFFECTS, find_oload_champ(), find_oload_champ_namespace(), value::from_xmethod(), INCOMPATIBLE, incomplete_type_hint(), type::is_pointer_or_reference(), METHOD, name, type::name(), general_symbol_info::natural_name(), NON_METHOD, NON_STANDARD, oload_method_static_p(), search_struct_field(), STANDARD, symbol::type(), value::type(), TYPE_FN_FIELD_VIRTUAL_P, TYPE_SELF_TYPE, value_addr(), value_find_oload_method_list(), value_fn_field(), value_ind(), and value_virtual_fn_field().
Referenced by call_function_by_hand_dummy(), expr::adl_func_operation::evaluate(), expr::scope_operation::evaluate_funcall(), expr::var_value_operation::evaluate_funcall(), expr::structop_base_operation::evaluate_funcall(), and value_user_defined_cpp_op().
|
static |
Definition at line 3513 of file valops.c.
References baseclass_offset(), BASETYPE_VIA_VIRTUAL, check_typedef(), value::contents_for_printing(), type::field(), get_baseclass_offset(), value::offset(), field::type(), TYPE_N_BASECLASSES, types_equal(), and value_as_long().
Referenced by get_baseclass_offset(), and value_struct_elt_for_reference().
|
static |
Definition at line 983 of file valops.c.
References check_typedef(), code, value::fetch_lazy(), value::lazy(), and value_from_contents_and_address().
Referenced by value_at(), and value_at_lazy().
|
static |
Definition at line 2627 of file valops.c.
References type::code(), current_language, type::is_stub(), language_defn::print_type(), string_file::string(), type::target_type(), and type_print_raw_options.
Referenced by find_overload_match().
|
static |
Definition at line 3322 of file valops.c.
References TYPE_FN_FIELD_STATIC_P.
Referenced by find_oload_champ(), and find_overload_match().
void read_value_memory | ( | struct value * | val, |
LONGEST | bit_offset, | ||
bool | stack, | ||
CORE_ADDR | memaddr, | ||
gdb_byte * | buffer, | ||
size_t | length ) |
Definition at line 1042 of file valops.c.
References value::arch(), current_inferior(), gdbarch_addressable_memory_unit_size(), value::mark_bits_unavailable(), memory_error(), QUIT, status, TARGET_OBJECT_MEMORY, TARGET_OBJECT_STACK_MEMORY, TARGET_XFER_E_IO, TARGET_XFER_EOF, TARGET_XFER_OK, target_xfer_partial, and TARGET_XFER_UNAVAILABLE.
Referenced by value::fetch_lazy_memory(), rw_pieced_value(), and value_repeat().
|
static |
Definition at line 2131 of file valops.c.
References struct_field_searcher::baseclass(), struct_field_searcher::fields(), name, type::name(), struct_field_searcher::search(), and TYPE_SAFE_NAME.
Referenced by find_overload_match(), value_cast_structs(), and value_struct_elt().
|
static |
Definition at line 2198 of file valops.c.
References value::address, baseclass_offset(), BASETYPE_VIA_VIRTUAL, check_stub_method_group(), check_typedef(), value::contents_for_printing(), f(), type::length(), name, value::offset(), search_struct_method(), strcmp_iw(), target_read_memory(), TYPE_BASECLASS, TYPE_BASECLASS_BITPOS, TYPE_FN_FIELD_ARGS, TYPE_FN_FIELD_STATIC_P, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELD_VIRTUAL_P, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_N_BASECLASSES, TYPE_NFN_FIELDS, typecmp(), value_fn_field(), value_from_contents_and_address(), and value_virtual_fn_field().
Referenced by search_struct_method(), and value_struct_elt().
|
static |
Definition at line 103 of file valops.c.
References gdb_printf().
|
static |
Referenced by search_struct_method().
|
static |
Definition at line 1790 of file valops.c.
References check_typedef(), code, type::code(), type::target_type(), TYPE_IS_REFERENCE, value_coerce_array(), and value_ref().
Definition at line 1551 of file valops.c.
References value::address, value::bits_synthetic_pointer(), check_typedef(), type::code(), coerce_ref(), value::copy(), value::deprecated_set_type(), value::embedded_offset(), value::enclosing_type(), type::length(), lookup_pointer_type(), value::lval(), lval_memory, value::set_enclosing_type(), value::set_pointed_to_offset(), type::target_type(), value::type(), TYPE_IS_REFERENCE, value_coerce_function(), value_coerce_to_target(), and value_from_pointer().
Referenced by ada_convert_actual(), ada_tag_value_at_base_address(), ada_ternop_slice(), amd64_windows_adjust_args_passed_by_pointer(), c_value_print(), eval_op_member(), expr::ada_funcall_operation::evaluate(), expr::var_msym_value_operation::evaluate_for_address(), expr::rust_structop::evaluate_funcall(), evaluate_subexp_for_address_base(), find_function_addr(), find_overload_match(), fortran_argument_convert(), get_value_addr_contents(), gnuv2_virtual_fn_field(), gnuv3_get_virtual_fn(), gnuv3_print_vtable(), gnuv3_rtti_type(), make_array_descriptor(), print_one_vtable(), rust_subscript(), valpy_get_address(), value_cast_pointers(), value_dynamic_cast(), value_fn_field(), value_maybe_namespace_elt(), value_ref(), value_reinterpret_cast(), value_struct_elt_for_reference(), value_x_binop(), value_x_unop(), and watch_command_1().
struct value * value_aggregate_elt | ( | struct type * | curtype, |
const char * | name, | ||
struct type * | expect_type, | ||
int | want_address, | ||
enum noside noside noside | ) |
Definition at line 3430 of file valops.c.
References type::code(), enum_constant_from_type(), name, value_namespace_elt(), and value_struct_elt_for_reference().
Referenced by eval_op_scope(), expr::scope_operation::evaluate_for_address(), and value_struct_elt_for_reference().
struct value * value_allocate_space_in_inferior | ( | int | len | ) |
Definition at line 175 of file valops.c.
References objfile::arch(), call_function_by_hand(), find_function_in_inferior(), target_has_execution(), value_from_longest(), and value_logical_not().
Referenced by allocate_space_in_inferior(), ensure_lval(), expr::rust_aggregate_operation::evaluate(), find_func_descr(), fortran_argument_convert(), rust_range(), and rust_subscript().
Definition at line 1695 of file valops.c.
References value::allocate(), language_defn::c_style_arrays_p(), current_language, lookup_array_range_type(), and type_length_units().
Referenced by eval_op_rust_array(), and expr::array_operation::evaluate().
Definition at line 1085 of file valops.c.
References value::address, type::arch(), value::bitpos(), value::bitsize(), check_typedef(), type::code(), coerce_array(), coerce_ref(), value::computed_funcs(), value::contents(), value::contents_raw(), value::copy(), current_inferior(), value::deprecated_modifiable(), deprecated_safe_get_selected_frame(), value::enclosing_type(), frame_find_by_id(), gdbarch_convert_register_p(), gdbarch_value_to_register(), get_frame_arch(), get_frame_id(), get_frame_register_bytes(), get_prev_frame_always(), type::is_unsigned(), type::length(), value::lval(), lval_computed, lval_internalvar, lval_internalvar_component, lval_memory, lval_register, modify_field(), value::offset(), value::parent(), value::pointed_to_offset(), put_frame_register_bytes(), read_memory(), gdb::observers::register_changed, select_frame(), value::set_enclosing_type(), set_internalvar(), set_internalvar_component(), value::set_lazy(), value::set_pointed_to_offset(), gdb::observers::target_changed, type, value::type(), type_length_units(), value_as_long(), value_cast(), value_from_longest(), VALUE_INTERNALVAR, value_must_coerce_to_target(), VALUE_NEXT_FRAME_ID, value_of_internalvar(), VALUE_REGNUM, lval_funcs::write, and write_memory_with_notification().
Referenced by ada_value_assign(), eval_binop_assign_modify(), eval_op_postdec(), eval_op_postinc(), eval_op_predec(), eval_op_preinc(), eval_opencl_assign(), expr::rust_aggregate_operation::evaluate(), lval_func_write(), rust_range(), rust_subscript(), valpy_assign(), and varobj_set_value().
Definition at line 1015 of file valops.c.
References get_value_at().
Referenced by ada_get_tcb_types_info(), ada_imported_read_variable(), ada_value_primitive_packed_val(), dwarf2_evaluate_property(), dynamic_array_type(), generic_val_print_ref(), gnuv3_get_vtable(), print_unpacked_pointer(), print_variable_at_address(), language_defn::read_var_value(), finish_command_fsm::should_stop(), value_at_non_lval(), value_cast_structs(), value_dynamic_cast(), and pascal_language::value_print_inner().
struct value * value_at_lazy | ( | struct type * | type, |
CORE_ADDR | addr, | ||
frame_info_ptr | frame ) |
Definition at line 1036 of file valops.c.
References get_value_at().
Referenced by ada_value_slice_from_ptr(), ada_value_struct_elt(), coerce_ref(), do_examine(), dynamic_cast_check_1(), dynamic_cast_check_2(), eval_op_ind(), eval_op_memval(), expr::ada_unop_ind_operation::evaluate(), expr::rust_aggregate_operation::evaluate(), evaluate_var_msym_value(), dwarf_expr_context::fetch_result(), frame_unwind_got_memory(), gnuv3_get_typeid(), gnuv3_get_vtable(), lsscm_safe_lazy_string_to_value(), m2_print_unbounded_array(), fortran_lazy_array_repacker_impl::process_element(), language_defn::read_var_value(), rust_range(), rust_subscript(), struct_field_searcher::search(), stpy_convert_to_value(), value_cast(), value_cast_structs(), value_coerce_to_target(), value_dynamic_cast(), value_full_object(), value_ind(), value_static_field(), and expr::fortran_undetermined::value_subarray().
Definition at line 1023 of file valops.c.
References not_lval, value::set_lval(), and value_at().
Referenced by aarch64_return_value(), amd64_return_value(), amd64_windows_return_value(), arm_return_value(), get_call_return_value(), i386_return_value(), riscv_return_value(), and sparc32_return_value().
Definition at line 403 of file valops.c.
References value::address, value::allocate(), type::arch(), gdb_mpq::as_double(), type::bounds(), language_defn::c_style_arrays_p(), cast_into_complex(), check_typedef(), type::code(), coerce_ref(), value::contents(), value::contents_raw(), value::contents_writeable(), value::copy(), cplus_make_method_ptr(), create_array_type(), create_static_range_type(), current_language, value::deprecated_set_type(), extract_unsigned_integer(), type::fixed_point_scaling_factor(), gdbarch_addr_bit(), get_discrete_bounds(), range_bounds::high, type::index_type(), is_fixed_point_type(), is_floating_type(), is_floating_value(), type::is_unsigned(), type::is_vector(), dynamic_prop::kind(), language_defn::la_language, language_ada, type::length(), value::lval(), lval_memory, type::name(), not_lval, PROP_UNDEFINED, gdb_mpq::read_fixed_point(), value::set_enclosing_type(), value::set_pointed_to_offset(), target_float_convert(), target_float_from_host_double(), type::target_type(), type, value::type(), type_byte_order(), TYPE_IS_REFERENCE, types_deeply_equal(), value_as_long(), value_as_mpz(), value_at_lazy(), value_cast(), value_cast_pointers(), value_cast_structs(), value_cast_to_fixed_point(), value_coerce_array(), value_coerce_function(), value_from_longest(), value_from_mpz(), value_from_ulongest(), value_ref(), and value::zero().
Referenced by aarch64_push_dummy_call(), ada_atr_enum_rep(), ada_coerce_to_simple_array_ptr(), ada_get_tsd_from_tag(), ada_promote_array_of_integrals(), ada_tag_value_at_base_address(), ada_value_assign(), ada_value_cast(), ada_value_print_num(), ada_value_ptr_subscript(), ada_value_slice(), adjust_value_for_child_access(), alpha_push_dummy_call(), binop_promote(), BP_MANIPULATION(), c_value_print(), complex_binop(), compute_exception(), cplus_describe_child(), desc_bounds(), python_xmethod_worker::do_get_result_type(), eval_op_f_cmplx(), eval_op_m2_high(), eval_op_m2_subscript(), eval_op_structop_ptr(), expr::ada_binop_addsub_operation::evaluate(), expr::ada_bitwise_operation< OP >::evaluate(), expr::ada_unop_ind_operation::evaluate(), expr::array_operation::evaluate(), expr::unop_memval_operation::evaluate_for_address(), expr::unop_memval_type_operation::evaluate_for_address(), expr::operation::evaluate_for_cast(), expr::var_value_operation::evaluate_for_cast(), expr::var_msym_value_operation::evaluate_for_cast(), expr::structop_member_base::evaluate_funcall(), expr::array_operation::evaluate_struct_tuple(), expr::var_value_operation::evaluate_with_coercion(), dwarf_expr_context::execute_stack_op(), fixed_point_binop(), generic_value_print(), gnuv2_value_rtti_type(), gnuv2_virtual_fn_field(), gnuv3_get_typeid(), gnuv3_get_virtual_fn(), gnuv3_method_ptr_to_value(), gnuv3_virtual_fn_field(), hppa64_push_dummy_call(), python_xmethod_worker::invoke(), memory_tag_with_logical_tag_command(), opencl_value_cast(), printf_floating(), riscv_push_dummy_call(), riscv_return_value(), rust_get_trait_object_pointer(), s390_unwind_pseudo_register(), sparc64_store_arguments(), thin_data_pntr(), unop_promote(), valpy_do_cast(), valpy_getitem(), valpy_long(), value_arg_coerce(), value_assign(), value_assign_to_component(), value_cast(), value_dynamic_cast(), value_fn_field(), value_literal_complex(), m2_language::value_print_inner(), value_reinterpret_cast(), value_vector_widen(), varobj_create(), vlscm_do_cast(), and xtensa_push_dummy_call().
Definition at line 296 of file valops.c.
References check_typedef(), type::code(), coerce_ref(), value::copy(), value::deprecated_set_type(), value::set_enclosing_type(), value::set_pointed_to_offset(), type::target_type(), value::type(), TYPE_IS_REFERENCE, value_addr(), value_cast_structs(), value_ind(), and value_logical_not().
Referenced by ada_convert_actual(), eval_op_member(), language_defn::read_var_value(), value_arg_coerce(), value_cast(), and value_struct_elt_for_reference().
Definition at line 207 of file valops.c.
References value::address, check_typedef(), type::code(), value::embedded_offset(), type::name(), not_lval, search_struct_field(), value::type(), value_at(), value_at_lazy(), value_full_object(), value_rtti_type(), and value::zero().
Referenced by value_cast(), and value_cast_pointers().
|
static |
Definition at line 366 of file valops.c.
References value::allocate(), value::contents_raw(), type::fixed_point_scaling_factor(), gdb_mpq::get_rounded(), is_fixed_point_type(), is_floating_type(), is_integral_type(), type::is_unsigned(), type::name(), value::type(), type_byte_order(), value_to_gdb_mpq(), and gdb_mpz::write().
Referenced by value_cast().
Definition at line 1515 of file valops.c.
References value::address, check_typedef(), lookup_pointer_type(), value::lval(), lval_memory, type::target_type(), value::type(), value_coerce_to_target(), and value_from_pointer().
Referenced by coerce_array(), lookup_child_selector(), lookup_objc_class(), typecmp(), value_cast(), value_nsstring(), and value_subscript().
Definition at line 1535 of file valops.c.
References value::address, lookup_pointer_type(), value::lval(), lval_memory, value::type(), and value_from_pointer().
Referenced by coerce_array(), value_addr(), and value_cast().
Definition at line 1477 of file valops.c.
References allocate_space_in_inferior(), check_typedef(), value::contents(), type::length(), value::type(), value_at_lazy(), value_must_coerce_to_target(), and write_memory().
Referenced by value_addr(), value_arg_coerce(), and value_coerce_array().
Definition at line 1738 of file valops.c.
References value::allocate(), value::contents_raw(), current_language, type::length(), lookup_array_range_type(), and language_defn::string_lower_bound().
Referenced by expr::c_string_operation::evaluate(), value_cstring(), and language_defn::value_string().
Definition at line 814 of file valops.c.
References value::address, check_typedef(), class_types_same_p(), type::code(), value::contents_for_printing(), dynamic_cast_check_1(), dynamic_cast_check_2(), value::embedded_offset(), is_ancestor(), is_public_ancestor(), is_unique_ancestor(), not_lval, type::target_type(), value::type(), TYPE_IS_REFERENCE, value_addr(), value_as_long(), value_at(), value_at_lazy(), value_cast(), value_ind(), value_ref(), value_rtti_type(), and value::zero().
Referenced by valpy_do_cast(), and vlscm_do_cast().
|
static |
Definition at line 2585 of file valops.c.
References check_typedef(), type::code(), coerce_array(), find_method_list(), type::is_pointer_or_reference(), and value_ind().
Referenced by find_overload_match().
struct value * value_full_object | ( | struct value * | argp, |
struct type * | rtype, | ||
int | xfull, | ||
int | xtop, | ||
int | xusing_enc ) |
Definition at line 3915 of file valops.c.
References value::address, value::copy(), value::deprecated_set_type(), value::embedded_offset(), value::enclosing_type(), type::length(), value::lval(), lval_memory, type::name(), value::set_embedded_offset(), value::set_enclosing_type(), value::type(), value_at_lazy(), and value_rtti_type().
Referenced by c_value_print(), gnuv3_print_vtable(), readjust_indirect_value_type(), and value_cast_structs().
Definition at line 4128 of file valops.c.
References check_typedef(), type::code(), type::length(), type::target_type(), value::type(), and value_from_component().
Referenced by cimag_internal_fn(), complex_binop(), generic_value_print_complex(), value_complement(), and value_neg().
Definition at line 1630 of file valops.c.
References check_typedef(), code, type::code(), coerce_array(), value::computed_funcs(), value::enclosing_type(), find_function_addr(), value::funcs, lval_funcs::indirect, value::lval(), lval_computed, value::pointed_to_offset(), readjust_indirect_value_type(), type::target_type(), value::type(), value_as_address(), and value_at_lazy().
Referenced by ada_array_bound(), ada_array_length(), ada_coerce_to_simple_array(), ada_get_tsd_from_tag(), ada_tag_value_at_base_address(), ada_ternop_slice(), ada_value_ind(), ada_value_ptr_subscript(), ada_value_struct_elt(), adjust_value_for_child_access(), c_describe_child(), c_value_print(), compute_exception(), decode_constrained_packed_array(), do_module_cleanup(), eval_op_ind(), eval_op_m2_subscript(), eval_op_member(), expr::fortran_undetermined::evaluate(), expr::rust_unop_ind_operation::evaluate(), expr::unop_ind_base_operation::evaluate_for_sizeof(), expr::structop_member_base::evaluate_funcall(), expr::rust_structop::evaluate_funcall(), find_overload_match(), gdbscm_value_dereference(), gdbscm_value_dynamic_type(), ravenscar_thread_target::get_fpu_state(), gnuv2_virtual_fn_field(), gnuv3_get_typeid(), gnuv3_method_ptr_to_value(), gnuv3_print_vtable(), info_mach_region_command(), read_fat_string_value(), valpy_dereference(), valpy_get_dynamic_type(), valpy_referenced_value(), value_cast_pointers(), value_dynamic_cast(), value_find_oload_method_list(), value_fn_field(), value_reinterpret_cast(), value_rtti_indirect_type(), value_struct_elt(), value_struct_elt_bitpos(), value_struct_elt_for_reference(), value_subscript(), and value_user_defined_cpp_op().
struct value * value_literal_complex | ( | struct value * | arg1, |
struct value * | arg2, | ||
struct type * | type ) |
Definition at line 4092 of file valops.c.
References value::allocate(), value::contents(), value::contents_raw(), type::length(), type::target_type(), and value_cast().
Referenced by cast_into_complex(), complex_binop(), eval_op_f_cmplx(), eval_op_f_cmplx(), eval_op_f_cmplx(), expr::complex_operation::evaluate(), value_complement(), and value_neg().
|
static |
Definition at line 3818 of file valops.c.
References symbol::aclass(), value::allocate(), block_symbol::block, cp_lookup_symbol_namespace(), EVAL_AVOID_SIDE_EFFECTS, get_selected_block(), LOC_TYPEDEF, name, type::name(), namespace_name(), block_symbol::symbol, symbol::type(), value_addr(), value_of_variable(), and VAR_DOMAIN.
Referenced by value_namespace_elt(), and value_struct_elt_for_reference().
bool value_must_coerce_to_target | ( | struct value * | val | ) |
Definition at line 1449 of file valops.c.
References check_typedef(), type::code(), type::is_vector(), value::lval(), lval_internalvar, lval_xcallable, not_lval, and value::type().
Referenced by evaluate_subexp_for_address_base(), value_assign(), and value_coerce_to_target().
|
static |
Definition at line 3796 of file valops.c.
References name, type::name(), and value_maybe_namespace_elt().
Referenced by value_aggregate_elt().
struct value * value_of_this | ( | const struct language_defn * | lang | ) |
Definition at line 3985 of file valops.c.
References block_symbol::block, get_frame_block(), get_selected_frame(), lookup_language_this(), language_defn::name_of_this(), read_var_value(), and block_symbol::symbol.
Referenced by expr::op_this_operation::opcode(), and value_of_this_silent().
struct value * value_of_this_silent | ( | const struct language_defn * | lang | ) |
Definition at line 4010 of file valops.c.
References value_of_this().
Referenced by value_struct_elt_for_reference(), and yyparse().
Definition at line 1386 of file valops.c.
References get_selected_frame(), read_var_value(), and symbol_read_needs_frame().
Referenced by address_of_variable(), compute_var_value(), eval_op_objc_msgcall(), expr::scope_operation::evaluate_funcall(), evaluate_var_value(), find_function_in_inferior(), get_var_value(), info_common_command_for_block(), typy_template_argument(), value_maybe_namespace_elt(), f_language::value_print_inner(), value_static_field(), and value_user_defined_cpp_op().
Definition at line 937 of file valops.c.
References value::allocate(), check_typedef(), type::code(), value::contents_all(), value::contents_writeable(), get_array_bounds(), is_floating_type(), is_integral_type(), type::is_vector(), type::length(), value::lval(), not_lval, type::target_type(), value_from_longest(), and value_one().
Referenced by eval_op_binary(), eval_op_postdec(), eval_op_postinc(), eval_op_predec(), eval_op_preinc(), and value_one().
Definition at line 4116 of file valops.c.
References check_typedef(), type::code(), type::target_type(), value::type(), and value_from_component().
Referenced by complex_binop(), creal_internal_fn(), generic_value_print_complex(), value_complement(), and value_neg().
Definition at line 1609 of file valops.c.
References check_typedef(), type::code(), value::deprecated_set_type(), lookup_reference_type(), value::type(), and value_addr().
Referenced by c_value_print(), expr::ada_var_value_operation::evaluate(), gdbscm_reference_value(), typecmp(), valpy_reference_value(), value_arg_coerce(), value_cast(), value_dynamic_cast(), and value_reinterpret_cast().
Definition at line 667 of file valops.c.
References check_typedef(), type::code(), coerce_array(), lookup_pointer_type(), type::target_type(), type, value::type(), TYPE_IS_REFERENCE, value_addr(), value_cast(), value_ind(), and value_ref().
Referenced by valpy_do_cast(), and vlscm_do_cast().
Definition at line 1364 of file valops.c.
References value::address, allocate_repeat_value(), value::contents_all_raw(), value::enclosing_type(), value::lval(), lval_memory, read_value_memory(), value::set_address(), value::set_lval(), value::stack(), and type_length_units().
Referenced by eval_op_repeat().
struct type * value_rtti_indirect_type | ( | struct value * | v, |
int * | full, | ||
LONGEST * | top, | ||
int * | using_enc ) |
Definition at line 3849 of file valops.c.
References check_typedef(), type::code(), coerce_ref(), lookup_pointer_type(), lookup_reference_type(), make_cv_type(), type::target_type(), type, value::type(), TYPE_CONST, TYPE_IS_REFERENCE, TYPE_VOLATILE, value_ind(), and value_rtti_type().
Referenced by c_value_print(), eval_op_structop_ptr(), value_actual_type(), and whatis_exp().
Definition at line 4030 of file valops.c.
References value::allocate(), value::allocate_lazy(), check_typedef(), type::code(), value::contents_copy(), create_array_type(), create_static_range_type(), get_discrete_bounds(), type::index_type(), value::lazy(), type::length(), value::lval(), lval_memory, value::offset(), type::set_code(), value::set_component_location(), value::set_offset(), type::target_type(), value::type(), type_length_units(), type_not_allocated(), and type_not_associated().
Referenced by ada_value_slice(), and expr::ternop_slice_operation::evaluate().
Definition at line 1757 of file valops.c.
References value::allocate(), value::contents_raw(), current_language, type::length(), lookup_string_range_type(), and language_defn::string_lower_bound().
Referenced by expr::string_operation::evaluate(), lookup_child_selector(), lookup_objc_class(), value_nsstring(), and value_string().
struct value * value_struct_elt | ( | struct value ** | argp, |
gdb::optional< gdb::array_view< value * > > | args, | ||
const char * | name, | ||
int * | static_memfuncp, | ||
const char * | err ) |
Definition at line 2334 of file valops.c.
References check_typedef(), type::code(), coerce_array(), current_language, err, type::is_pointer_or_reference(), language_defn::la_language, language_fortran, name, search_struct_field(), search_struct_method(), TYPE_NFN_FIELDS, and value_ind().
Referenced by desc_bounds(), desc_data(), desc_one_bound(), eval_op_m2_high(), eval_op_m2_subscript(), eval_op_structop_ptr(), eval_op_structop_struct(), expr::opencl_structop_operation::evaluate(), expr::fortran_structop_operation::evaluate(), expr::rust_structop::evaluate(), expr::rust_aggregate_operation::evaluate(), expr::structop_base_operation::evaluate_funcall(), gdbscm_value_field(), rust_range(), rust_slice_to_array(), rust_subscript(), rust_val_print_slice(), valpy_getitem(), and value_user_defined_op().
struct value * value_struct_elt_bitpos | ( | struct value ** | argp, |
int | bitpos, | ||
struct type * | ftype, | ||
const char * | err ) |
Definition at line 2433 of file valops.c.
References check_typedef(), type::code(), coerce_array(), err, type::field(), type::is_pointer_or_reference(), field::is_static(), field::loc_bitpos(), type::num_fields(), field::type(), TYPE_N_BASECLASSES, types_equal(), and value_ind().
Referenced by valpy_getitem().
|
static |
Definition at line 3556 of file valops.c.
References value::address, value::allocate(), BASETYPE_VIA_VIRTUAL, check_stub_method_group(), check_typedef(), type::code(), compare_parameters(), value::contents_writeable(), cplus_make_method_ptr(), current_language, EVAL_AVOID_SIDE_EFFECTS, EVAL_NORMAL, f(), type::field(), get_baseclass_offset(), field::is_packed(), field::is_static(), field::loc_bitpos(), lookup_memberptr_type(), lookup_methodptr_type(), lookup_pointer_type(), lookup_symbol(), name, field::name(), type::num_fields(), value::offset(), read_var_value(), block_symbol::symbol, type::target_type(), field::type(), type, value::type(), TYPE_BASECLASS, TYPE_BASECLASS_BITPOS, TYPE_CONST, TYPE_FN_FIELD_ARTIFICIAL, TYPE_FN_FIELD_CONST, TYPE_FN_FIELD_PHYSNAME, TYPE_FN_FIELD_STATIC_P, TYPE_FN_FIELD_TYPE, TYPE_FN_FIELD_VIRTUAL_P, TYPE_FN_FIELD_VOFFSET, TYPE_FN_FIELD_VOLATILE, TYPE_FN_FIELDLIST1, TYPE_FN_FIELDLIST_LENGTH, TYPE_FN_FIELDLIST_NAME, TYPE_N_BASECLASSES, TYPE_NFN_FIELDS, TYPE_SELF_TYPE, TYPE_VOLATILE, value_addr(), value_aggregate_elt(), value_as_long(), value_cast_pointers(), value_from_longest(), value_from_pointer(), value_ind(), value_maybe_namespace_elt(), value_of_this_silent(), value_static_field(), value_struct_elt_for_reference(), and VAR_DOMAIN.
Referenced by value_aggregate_elt(), and value_struct_elt_for_reference().
Definition at line 338 of file valops.c.
References check_typedef(), value::contents(), type::fixed_point_scaling_factor(), is_fixed_point_type(), is_floating_type(), is_integral_type(), type::is_unsigned(), gdb_mpz::read(), target_float_to_host_double(), value::type(), and type_byte_order().
Referenced by fixed_point_binop(), and value_cast_to_fixed_point().
bool overload_resolution = false |
Definition at line 101 of file valops.c.
Referenced by expr::scope_operation::evaluate_funcall(), expr::var_value_operation::evaluate_funcall(), and expr::structop_base_operation::evaluate_funcall().