GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
/tmp/gdb-13.1/gdb/expop.h File Reference
#include "block.h"
#include "c-lang.h"
#include "cp-abi.h"
#include "expression.h"
#include "objfiles.h"
#include "gdbsupport/traits.h"
#include "gdbsupport/enum-flags.h"

Go to the source code of this file.

Classes

class  expr::tuple_holding_operation< Arg >
 
class  expr::maybe_constant_operation< Arg >
 
class  expr::float_const_operation
 
class  expr::scope_operation
 
class  expr::var_value_operation
 
class  expr::long_const_operation
 
class  expr::var_msym_value_operation
 
class  expr::var_entry_value_operation
 
class  expr::func_static_var_operation
 
class  expr::last_operation
 
class  expr::register_operation
 
class  expr::bool_operation
 
class  expr::internalvar_operation
 
class  expr::string_operation
 
class  expr::ternop_slice_operation
 
class  expr::ternop_cond_operation
 
class  expr::complex_operation
 
class  expr::structop_base_operation
 
class  expr::structop_operation
 
class  expr::structop_ptr_operation
 
class  expr::structop_member_base
 
class  expr::structop_member_operation
 
class  expr::structop_mptr_operation
 
class  expr::concat_operation
 
class  expr::add_operation
 
class  expr::sub_operation
 
class  expr::binop_operation< OP, FUNC >
 
class  expr::usual_ax_binop_operation< OP, FUNC >
 
class  expr::subscript_operation
 
class  expr::comparison_operation< OP, FUNC >
 
class  expr::equal_operation
 
class  expr::repeat_operation
 
class  expr::comma_operation
 
class  expr::unop_operation< OP, FUNC >
 
class  expr::usual_ax_unop_operation< OP, FUNC >
 
class  expr::unop_incr_operation< OP, FUNC >
 
class  expr::unop_ind_base_operation
 
class  expr::unop_ind_operation
 
class  expr::type_operation
 
class  expr::typeof_operation
 
class  expr::decltype_operation
 
class  expr::typeid_operation
 
class  expr::unop_addr_operation
 
class  expr::unop_sizeof_operation
 
class  expr::unop_alignof_operation
 
class  expr::unop_memval_operation
 
class  expr::unop_memval_type_operation
 
class  expr::op_this_operation
 
class  expr::type_instance_operation
 
class  expr::assign_operation
 
class  expr::assign_modify_operation
 
class  expr::unop_extract_operation
 
class  expr::unop_cast_operation
 
class  expr::unop_cast_type_operation
 
class  expr::cxx_cast_operation< OP, FUNC >
 
class  expr::multi_subscript_operation
 
class  expr::logical_and_operation
 
class  expr::logical_or_operation
 
class  expr::adl_func_operation
 
class  expr::array_operation
 
class  expr::funcall_operation
 

Namespaces

namespace  expr
 

Typedefs

typedef std::array< gdb_byte, 16 > expr::float_data
 
typedef struct valueexpr::binary_ftype(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
using expr::exp_operation = binop_operation< BINOP_EXP, eval_op_binary >
 
using expr::intdiv_operation = binop_operation< BINOP_INTDIV, eval_op_binary >
 
using expr::mod_operation = binop_operation< BINOP_MOD, eval_op_binary >
 
using expr::mul_operation = usual_ax_binop_operation< BINOP_MUL, eval_op_binary >
 
using expr::div_operation = usual_ax_binop_operation< BINOP_DIV, eval_op_binary >
 
using expr::rem_operation = usual_ax_binop_operation< BINOP_REM, eval_op_binary >
 
using expr::lsh_operation = usual_ax_binop_operation< BINOP_LSH, eval_op_binary >
 
using expr::rsh_operation = usual_ax_binop_operation< BINOP_RSH, eval_op_binary >
 
using expr::bitwise_and_operation = usual_ax_binop_operation< BINOP_BITWISE_AND, eval_op_binary >
 
using expr::bitwise_ior_operation = usual_ax_binop_operation< BINOP_BITWISE_IOR, eval_op_binary >
 
using expr::bitwise_xor_operation = usual_ax_binop_operation< BINOP_BITWISE_XOR, eval_op_binary >
 
using expr::notequal_operation = comparison_operation< BINOP_NOTEQUAL, eval_op_notequal >
 
using expr::less_operation = comparison_operation< BINOP_LESS, eval_op_less >
 
using expr::gtr_operation = comparison_operation< BINOP_GTR, eval_op_gtr >
 
using expr::geq_operation = comparison_operation< BINOP_GEQ, eval_op_geq >
 
using expr::leq_operation = comparison_operation< BINOP_LEQ, eval_op_leq >
 
typedef struct valueexpr::unary_ftype(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
using expr::unary_plus_operation = usual_ax_unop_operation< UNOP_PLUS, eval_op_plus >
 
using expr::unary_neg_operation = usual_ax_unop_operation< UNOP_NEG, eval_op_neg >
 
using expr::unary_complement_operation = usual_ax_unop_operation< UNOP_COMPLEMENT, eval_op_complement >
 
using expr::unary_logical_not_operation = usual_ax_unop_operation< UNOP_LOGICAL_NOT, eval_op_lognot >
 
using expr::preinc_operation = unop_incr_operation< UNOP_PREINCREMENT, eval_op_preinc >
 
using expr::predec_operation = unop_incr_operation< UNOP_PREDECREMENT, eval_op_predec >
 
using expr::postinc_operation = unop_incr_operation< UNOP_POSTINCREMENT, eval_op_postinc >
 
using expr::postdec_operation = unop_incr_operation< UNOP_POSTDECREMENT, eval_op_postdec >
 
typedef valueexpr::cxx_cast_ftype(struct type *, value *)
 
using expr::dynamic_cast_operation = cxx_cast_operation< UNOP_DYNAMIC_CAST, value_dynamic_cast >
 
using expr::reinterpret_cast_operation = cxx_cast_operation< UNOP_REINTERPRET_CAST, value_reinterpret_cast >
 

Functions

void gen_expr_binop (struct expression *exp, enum exp_opcode op, expr::operation *lhs, expr::operation *rhs, struct agent_expr *ax, struct axs_value *value)
 
void gen_expr_structop (struct expression *exp, enum exp_opcode op, expr::operation *lhs, const char *name, struct agent_expr *ax, struct axs_value *value)
 
void gen_expr_unop (struct expression *exp, enum exp_opcode op, expr::operation *lhs, struct agent_expr *ax, struct axs_value *value)
 
struct valueeval_op_scope (struct type *expect_type, struct expression *exp, enum noside noside, struct type *type, const char *string)
 
struct valueeval_op_var_msym_value (struct type *expect_type, struct expression *exp, enum noside noside, bool outermost_p, bound_minimal_symbol msymbol)
 
struct valueeval_op_var_entry_value (struct type *expect_type, struct expression *exp, enum noside noside, symbol *sym)
 
struct valueeval_op_func_static_var (struct type *expect_type, struct expression *exp, enum noside noside, value *func, const char *var)
 
struct valueeval_op_register (struct type *expect_type, struct expression *exp, enum noside noside, const char *name)
 
struct valueeval_op_ternop (struct type *expect_type, struct expression *exp, enum noside noside, struct value *array, struct value *low, struct value *upper)
 
struct valueeval_op_structop_struct (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
 
struct valueeval_op_structop_ptr (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
 
struct valueeval_op_member (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
 
struct valueeval_op_add (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
 
struct valueeval_op_sub (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
 
struct valueeval_op_binary (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_subscript (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_equal (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_notequal (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_less (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_gtr (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_geq (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_leq (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_repeat (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
struct valueeval_op_plus (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_neg (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_complement (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_lognot (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_preinc (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_predec (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_postinc (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_postdec (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
 
struct valueeval_op_ind (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
 
struct valueeval_op_type (struct type *expect_type, struct expression *exp, enum noside noside, struct type *type)
 
struct valueeval_op_alignof (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
 
struct valueeval_op_memval (struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct type *type)
 
struct valueeval_binop_assign_modify (struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
 
static bool expr::check_objfile (struct objfile *exp_objfile, struct objfile *objfile)
 
static bool expr::check_objfile (struct type *type, struct objfile *objfile)
 
static bool expr::check_objfile (struct symbol *sym, struct objfile *objfile)
 
static bool expr::check_objfile (const struct block *block, struct objfile *objfile)
 
static bool expr::check_objfile (const block_symbol &sym, struct objfile *objfile)
 
static bool expr::check_objfile (bound_minimal_symbol minsym, struct objfile *objfile)
 
static bool expr::check_objfile (internalvar *ivar, struct objfile *objfile)
 
static bool expr::check_objfile (const std::string &str, struct objfile *objfile)
 
static bool expr::check_objfile (const operation_up &op, struct objfile *objfile)
 
static bool expr::check_objfile (enum exp_opcode val, struct objfile *objfile)
 
static bool expr::check_objfile (ULONGEST val, struct objfile *objfile)
 
template<typename T >
static bool expr::check_objfile (enum_flags< T > val, struct objfile *objfile)
 
template<typename T >
static bool expr::check_objfile (const std::vector< T > &collection, struct objfile *objfile)
 
template<typename S , typename T >
static bool expr::check_objfile (const std::pair< S, T > &item, struct objfile *objfile)
 
bool expr::check_objfile (const std::unique_ptr< ada_component > &comp, struct objfile *objfile)
 
static void expr::dump_for_expression (struct ui_file *stream, int depth, const operation_up &op)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, enum exp_opcode op)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, const std::string &str)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, struct type *type)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, CORE_ADDR addr)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, internalvar *ivar)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, symbol *sym)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, const block_symbol &sym)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, bound_minimal_symbol msym)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, const block *bl)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, type_instance_flags flags)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, enum c_string_type_values flags)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, enum range_flag flags)
 
void expr::dump_for_expression (struct ui_file *stream, int depth, const std::unique_ptr< ada_component > &comp)
 
template<typename T >
void expr::dump_for_expression (struct ui_file *stream, int depth, const std::vector< T > &vals)
 
template<typename X , typename Y >
void expr::dump_for_expression (struct ui_file *stream, int depth, const std::pair< X, Y > &vals)
 
static bool expr::check_constant (const operation_up &item)
 
static bool expr::check_constant (bound_minimal_symbol msym)
 
static bool expr::check_constant (struct type *type)
 
static bool expr::check_constant (const struct block *block)
 
static bool expr::check_constant (const std::string &str)
 
static bool expr::check_constant (ULONGEST cst)
 
static bool expr::check_constant (struct symbol *sym)
 
static bool expr::check_constant (const block_symbol &sym)
 
template<typename T >
static bool expr::check_constant (const std::vector< T > &collection)
 
template<typename S , typename T >
static bool expr::check_constant (const std::pair< S, T > &item)
 

Function Documentation

◆ eval_binop_assign_modify()

struct value * eval_binop_assign_modify ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_add()

struct value * eval_op_add ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
struct value arg2 
)

◆ eval_op_alignof()

struct value * eval_op_alignof ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1 
)

◆ eval_op_binary()

struct value * eval_op_binary ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_complement()

struct value * eval_op_complement ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_equal()

struct value * eval_op_equal ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_func_static_var()

struct value * eval_op_func_static_var ( struct type expect_type,
struct expression exp,
enum noside  noside,
value func,
const char *  var 
)

◆ eval_op_geq()

struct value * eval_op_geq ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_gtr()

struct value * eval_op_gtr ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_ind()

struct value * eval_op_ind ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1 
)

◆ eval_op_leq()

struct value * eval_op_leq ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_less()

struct value * eval_op_less ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_lognot()

struct value * eval_op_lognot ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_member()

struct value * eval_op_member ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
struct value arg2 
)

◆ eval_op_memval()

struct value * eval_op_memval ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
struct type type 
)

◆ eval_op_neg()

struct value * eval_op_neg ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_notequal()

struct value * eval_op_notequal ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_plus()

struct value * eval_op_plus ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_postdec()

struct value * eval_op_postdec ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_postinc()

struct value * eval_op_postinc ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_predec()

struct value * eval_op_predec ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_preinc()

struct value * eval_op_preinc ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1 
)

◆ eval_op_register()

struct value * eval_op_register ( struct type expect_type,
struct expression exp,
enum noside  noside,
const char *  name 
)

◆ eval_op_repeat()

struct value * eval_op_repeat ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_scope()

struct value * eval_op_scope ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct type type,
const char *  string 
)

Definition at line 1077 of file eval.c.

References value_aggregate_elt().

Referenced by expr::scope_operation::evaluate().

◆ eval_op_structop_ptr()

struct value * eval_op_structop_ptr ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
const char *  string 
)

◆ eval_op_structop_struct()

struct value * eval_op_structop_struct ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
const char *  string 
)

◆ eval_op_sub()

struct value * eval_op_sub ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value arg1,
struct value arg2 
)

◆ eval_op_subscript()

struct value * eval_op_subscript ( struct type expect_type,
struct expression exp,
enum noside  noside,
enum exp_opcode  op,
struct value arg1,
struct value arg2 
)

◆ eval_op_ternop()

struct value * eval_op_ternop ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct value array,
struct value low,
struct value upper 
)

Definition at line 1199 of file eval.c.

References value_as_long(), and value_slice().

Referenced by expr::ternop_slice_operation::evaluate().

◆ eval_op_type()

struct value * eval_op_type ( struct type expect_type,
struct expression exp,
enum noside  noside,
struct type type 
)

Definition at line 1868 of file eval.c.

References allocate_value(), and EVAL_AVOID_SIDE_EFFECTS.

Referenced by expr::type_operation::evaluate().

◆ eval_op_var_entry_value()

struct value * eval_op_var_entry_value ( struct type expect_type,
struct expression exp,
enum noside  noside,
symbol sym 
)

◆ eval_op_var_msym_value()

struct value * eval_op_var_msym_value ( struct type expect_type,
struct expression exp,
enum noside  noside,
bool  outermost_p,
bound_minimal_symbol  msymbol 
)

◆ gen_expr_binop()

void gen_expr_binop ( struct expression exp,
enum exp_opcode  op,
expr::operation lhs,
expr::operation rhs,
struct agent_expr ax,
struct axs_value value 
)

◆ gen_expr_structop()

void gen_expr_structop ( struct expression exp,
enum exp_opcode  op,
expr::operation lhs,
const char *  name,
struct agent_expr ax,
struct axs_value value 
)

◆ gen_expr_unop()

void gen_expr_unop ( struct expression exp,
enum exp_opcode  op,
expr::operation lhs,
struct agent_expr ax,
struct axs_value value 
)