28#include "gdbsupport/traits.h"
29#include "gdbsupport/enum-flags.h"
51 struct type *
type,
const char *
string);
215 if (ty_objfile !=
nullptr)
257 return op->uses_objfile (
objfile);
289 for (
const auto &item : collection)
297template<
typename S,
typename T>
305extern bool check_objfile (
const std::unique_ptr<ada_component> &comp,
313 gdb_printf (stream, _(
"%*snullptr\n"), depth,
"");
315 op->dump (stream, depth);
321 const std::string &str);
339 type_instance_flags
flags);
345 const std::unique_ptr<ada_component> &comp);
350 const std::vector<T> &vals)
352 gdb_printf (stream, _(
"%*sVector:\n"), depth,
"");
353 for (
auto &item : vals)
357template<
typename X,
typename Y>
360 const std::pair<X, Y> &vals)
369template<
typename... Arg>
400 template<
int I,
typename...
T>
407 template<
int I,
typename...
T>
408 typename std::enable_if<
I <
sizeof... (
T),
void>
::type
418 template<
int I,
typename...
T>
419 typename std::enable_if<
I ==
sizeof... (
T),
bool>
::type
426 template<
int I,
typename...
T>
427 typename std::enable_if<
I <
sizeof... (
T),
bool>
::type
444 return item->constant_p ();
505 for (
const auto &item : collection)
511template<
typename S,
typename T>
521template<
typename... Arg>
536 template<
int I,
typename...
T>
537 typename std::enable_if<
I ==
sizeof... (
T),
bool>
::type
543 template<
int I,
typename...
T>
544 typename std::enable_if<
I <
sizeof... (
T),
bool>
::type
587 void dump (
struct ui_file *stream,
int depth)
const override;
600 using maybe_constant_operation::maybe_constant_operation;
617 const std::vector<operation_up> &args)
override;
627 struct type *cast_type)
637 using maybe_constant_operation::maybe_constant_operation;
659 const std::vector<operation_up> &args)
override;
662 {
return OP_VAR_VALUE; }
675 struct type *cast_type)
706 {
return std::get<1> (
m_storage).as_integer_truncate<LONGEST> (); }
711 struct type *cast_type)
720 using maybe_constant_operation::maybe_constant_operation;
743 const std::vector<operation_up> &args)
override
745 const char *
name = std::get<0> (
m_storage).minsym->print_name ();
750 {
return OP_VAR_MSYM_VALUE; }
765 struct type *cast_type)
785 {
return OP_VAR_ENTRY_VALUE; }
793 using maybe_constant_operation::maybe_constant_operation;
805 {
return OP_FUNC_STATIC_VAR; }
842 {
return OP_REGISTER; }
855 struct type *cast_type)
902 {
return OP_INTERNALVAR; }
909 struct type *cast_type)
925 {
return OP_STRING; }
933 using maybe_constant_operation::maybe_constant_operation;
940 {
return TERNOP_SLICE; }
948 using maybe_constant_operation::maybe_constant_operation;
963 {
return TERNOP_COND; }
970 struct type *cast_type)
979 using maybe_constant_operation::maybe_constant_operation;
992 {
return OP_COMPLEX; }
1009 const std::vector<operation_up> &args)
override;
1016 return complete (exp, tracker,
"");
1034 using structop_base_operation::structop_base_operation;
1046 {
return STRUCTOP_STRUCT; }
1053 struct type *cast_type)
1068 using structop_base_operation::structop_base_operation;
1080 {
return STRUCTOP_PTR; }
1087 struct type *cast_type)
1107 const std::vector<operation_up> &args)
override;
1115 using structop_member_base::structop_member_base;
1129 {
return STRUCTOP_MEMBER; }
1137 using structop_member_base::structop_member_base;
1151 {
return STRUCTOP_MPTR; }
1159 using maybe_constant_operation::maybe_constant_operation;
1173 {
return BINOP_CONCAT; }
1181 using maybe_constant_operation::maybe_constant_operation;
1195 {
return BINOP_ADD; }
1202 struct type *cast_type)
1217 using maybe_constant_operation::maybe_constant_operation;
1231 {
return BINOP_SUB; }
1238 struct type *cast_type)
1253template<enum exp_opcode OP, binary_ftype FUNC>
1259 using maybe_constant_operation::maybe_constant_operation;
1269 return FUNC (expect_type, exp,
noside,
OP, lhs, rhs);
1276template<enum exp_opcode OP, binary_ftype FUNC>
1289 struct type *cast_type)
1327template<enum exp_opcode OP, binary_ftype FUNC>
1342 = std::get<1> (this->
m_storage)->evaluate (lhs->
type (), exp,
1344 return FUNC (expect_type, exp,
noside,
OP, lhs, rhs);
1348class equal_operation
1349 :
public comparison_operation<BINOP_EQUAL, eval_op_equal>
1353 using comparison_operation::comparison_operation;
1384 struct type *cast_type)
1394 using maybe_constant_operation::maybe_constant_operation;
1408 {
return BINOP_COMMA; }
1425template<enum exp_opcode OP, unary_ftype FUNC>
1431 using maybe_constant_operation::maybe_constant_operation;
1438 return FUNC (expect_type, exp,
noside,
OP, val);
1447template<enum exp_opcode OP, unary_ftype FUNC>
1458 struct type *cast_type)
1475template<enum exp_opcode OP, unary_ftype FUNC>
1488 return FUNC (expect_type, exp,
noside,
OP, val);
1516 if (expect_type !=
nullptr && expect_type->
code () == TYPE_CODE_PTR)
1529 {
return UNOP_IND; }
1538 using unop_ind_base_operation::unop_ind_base_operation;
1582 using maybe_constant_operation::maybe_constant_operation;
1589 return std::get<0> (
m_storage)->evaluate (
nullptr, exp,
1592 error (_(
"Attempt to use a type as an expression"));
1596 {
return OP_TYPEOF; }
1605 using maybe_constant_operation::maybe_constant_operation;
1614 = std::get<0> (
m_storage)->evaluate (
nullptr, exp,
1617 if (sub_op == BINOP_SUBSCRIPT
1618 || sub_op == STRUCTOP_MEMBER
1619 || sub_op == STRUCTOP_MPTR
1620 || sub_op == UNOP_IND
1621 || sub_op == STRUCTOP_STRUCT
1622 || sub_op == STRUCTOP_PTR
1623 || sub_op == OP_SCOPE)
1637 error (_(
"Attempt to use a type as an expression"));
1641 {
return OP_DECLTYPE; }
1658 = ((sub_op == OP_TYPE || sub_op == OP_DECLTYPE || sub_op == OP_TYPEOF)
1670 {
return OP_TYPEID; }
1679 using maybe_constant_operation::maybe_constant_operation;
1690 {
return UNOP_ADDR; }
1718 using maybe_constant_operation::maybe_constant_operation;
1728 {
return UNOP_SIZEOF; }
1735 struct type *cast_type)
1745 using maybe_constant_operation::maybe_constant_operation;
1757 {
return UNOP_ALIGNOF; }
1784 {
return UNOP_MEMVAL; }
1797 struct type *cast_type)
1814 = std::get<0> (
m_storage)->evaluate (expect_type, exp,
1828 {
return UNOP_MEMVAL_TYPE; }
1835 struct type *cast_type)
1862 struct type *cast_type)
1880 {
return TYPE_INSTANCE; }
1915 {
return BINOP_ASSIGN; }
1928 struct type *cast_type)
1951 {
return BINOP_ASSIGN_MODIFY; }
1958 struct type *cast_type)
1971 using maybe_constant_operation::maybe_constant_operation;
1977 {
return UNOP_EXTRACT; }
1990 struct type *cast_type)
override;
1999 using maybe_constant_operation::maybe_constant_operation;
2010 {
return UNOP_CAST; }
2023 struct type *cast_type)
2034 using maybe_constant_operation::maybe_constant_operation;
2042 return std::get<1> (
m_storage)->evaluate_for_cast (val->
type (),
2047 {
return UNOP_CAST_TYPE; }
2054 struct type *cast_type)
2062template<exp_opcode OP, cxx_cast_ftype FUNC>
2068 using maybe_constant_operation::maybe_constant_operation;
2078 return FUNC (
type, rhs);
2091class multi_subscript_operation
2103 {
return MULTI_SUBSCRIPT; }
2107class logical_and_operation
2112 using maybe_constant_operation::maybe_constant_operation;
2119 {
return BINOP_LOGICAL_AND; }
2126 struct type *cast_type)
2136 using maybe_constant_operation::maybe_constant_operation;
2143 {
return BINOP_LOGICAL_OR; }
2150 struct type *cast_type)
2159 std::vector<operation_up>>
2170 {
return OP_ADL_FUNC; }
2174class array_operation
2186 {
return OP_ARRAY; }
2208 return std::get<0> (
m_storage)->evaluate_funcall (expect_type, exp,
noside,
2213 {
return OP_FUNCALL; }
constexpr string_view get()
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_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_unop(struct expression *exp, enum exp_opcode op, expr::operation *lhs, struct agent_expr *ax, struct axs_value *value)
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
struct value * evaluate_struct_tuple(struct value *struct_val, struct expression *exp, enum noside noside, int nargs)
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
operation * get_lhs() const
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
bool constant_p() const override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
operation * get_rhs() const
operation * get_lhs() const
void dump(struct ui_file *stream, int depth) const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
bool constant_p() const override
float_const_operation(struct type *type, float_data data)
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
internalvar * get_internalvar() const
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
bool constant_p() const override
LONGEST as_longest() const
long_const_operation(struct type *type, LONGEST val)
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
std::enable_if< I==sizeof...(T), bool >::type do_check_constant(const std::tuple< T... > &value) const
bool constant_p() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
virtual value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args)
virtual enum exp_opcode opcode() const =0
enum exp_opcode opcode() const override
const char * get_name() const
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args) override
const std::string & get_string() const
virtual bool complete(struct expression *exp, completion_tracker &tracker)
value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
bool uses_objfile(struct objfile *objfile) const override
DISABLE_COPY_AND_ASSIGN(tuple_holding_operation)
std::enable_if(stream, depth, value)
std::tuple< Arg... > m_storage
std::enable_if< I==sizeof...(T), bool >::type do_check_objfile(struct objfile *objfile, const std::tuple< T... > &value) const
tuple_holding_operation(Arg... args)
std::enable_if< I==sizeof...(T), void >::type do_dump(struct ui_file *stream, int depth, const std::tuple< T... > &value) const
void dump(struct ui_file *stream, int depth) const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
bool constant_p() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
const operation_up & get_expression() const
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
struct type * get_type() const
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
struct type * get_type() const
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
enum exp_opcode opcode() const override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
value * evaluate_for_cast(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args) override
void set_outermost() override
enum exp_opcode opcode() const override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_funcall(struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args) override
enum exp_opcode opcode() const override
symbol * get_symbol() const
value * evaluate_for_cast(struct type *expect_type, struct expression *exp, enum noside noside) override
value * evaluate_for_sizeof(struct expression *exp, enum noside noside) override
value * evaluate_with_coercion(struct expression *exp, enum noside noside) override
value * evaluate_for_address(struct expression *exp, enum noside noside) override
value * evaluate(struct type *expect_type, struct expression *exp, enum noside noside) override
void do_generate_ax(struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type) override
struct type * cplus_typeid_type(struct gdbarch *gdbarch)
struct value * cplus_typeid(struct value *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)
struct value * eval_op_memval(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct type *type)
struct value * eval_op_func_static_var(struct type *expect_type, struct expression *exp, enum noside noside, value *func, const char *var)
struct value * eval_op_var_entry_value(struct type *expect_type, struct expression *exp, enum noside noside, symbol *sym)
struct value * eval_op_structop_ptr(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
struct value * eval_op_alignof(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
struct value * eval_op_register(struct type *expect_type, struct expression *exp, enum noside noside, const char *name)
struct value * eval_op_scope(struct type *expect_type, struct expression *exp, enum noside noside, struct type *type, const char *string)
struct value * eval_op_add(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
struct value * eval_op_ind(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
struct value * eval_op_structop_struct(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
struct value * eval_op_member(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
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)
struct value * eval_op_sub(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
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)
struct value * eval_op_type(struct type *expect_type, struct expression *exp, enum noside noside, struct type *type)
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)
struct value * eval_op_var_msym_value(struct type *expect_type, struct expression *exp, enum noside noside, bool outermost_p, bound_minimal_symbol msymbol)
struct value * eval_op_memval(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct type *type)
struct value * eval_op_func_static_var(struct type *expect_type, struct expression *exp, enum noside noside, value *func, const char *var)
struct value * eval_op_var_entry_value(struct type *expect_type, struct expression *exp, enum noside noside, symbol *sym)
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)
struct value * eval_op_preinc(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * eval_op_postdec(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
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)
struct value * eval_op_lognot(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
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)
struct value * eval_op_neg(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
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)
struct value * eval_op_structop_ptr(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
struct value * eval_op_alignof(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
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)
struct value * eval_op_register(struct type *expect_type, struct expression *exp, enum noside noside, const char *name)
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)
struct value * eval_op_complement(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * eval_op_scope(struct type *expect_type, struct expression *exp, enum noside noside, struct type *type, const char *string)
struct value * eval_op_add(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
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)
struct value * eval_op_ind(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1)
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)
struct value * eval_op_structop_struct(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, const char *string)
struct value * eval_op_plus(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * eval_op_postinc(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
struct value * eval_op_member(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
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)
void gen_expr_unop(struct expression *exp, enum exp_opcode op, expr::operation *lhs, struct agent_expr *ax, struct axs_value *value)
struct value * eval_op_predec(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
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)
struct value * eval_op_sub(struct type *expect_type, struct expression *exp, enum noside noside, struct value *arg1, struct value *arg2)
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)
struct value * eval_op_type(struct type *expect_type, struct expression *exp, enum noside noside, struct type *type)
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_AVOID_SIDE_EFFECTS
struct type * lookup_lvalue_reference_type(struct type *type)
struct type * check_typedef(struct type *type)
#define TYPE_IS_REFERENCE(t)
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
struct type * language_bool_type(const struct language_defn *la, struct gdbarch *gdbarch)
cxx_cast_operation< UNOP_DYNAMIC_CAST, value_dynamic_cast > dynamic_cast_operation
std::unique_ptr< operation > operation_up
bool check_objfile(const std::unique_ptr< ada_component > &comp, struct objfile *objfile)
std::array< gdb_byte, 16 > float_data
static void dump_for_expression(struct ui_file *stream, int depth, const operation_up &op)
struct value * binary_ftype(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1, struct value *arg2)
value * cxx_cast_ftype(struct type *, value *)
cxx_cast_operation< UNOP_REINTERPRET_CAST, value_reinterpret_cast > reinterpret_cast_operation
struct value * unary_ftype(struct type *expect_type, struct expression *exp, enum noside noside, enum exp_opcode op, struct value *arg1)
static bool check_constant(const operation_up &item)
#define prefix(a, b, R, do)
void(* func)(remote_target *remote, char *)
const struct block * block
const struct language_defn * language_defn
struct objfile * separate_debug_objfile_backlink
address_class aclass() const
struct objfile * objfile() const
struct type * target_type() const
struct objfile * objfile_owner() const
static struct value * allocate(struct type *type)
struct type * type() const
enum lval_type lval() const
void gdb_printf(struct ui_file *stream, const char *format,...)
bool value_logical_not(struct value *arg1)
struct value * value_x_binop(struct value *arg1, struct value *arg2, enum exp_opcode op, enum exp_opcode otherop, enum noside noside)
int binop_user_defined_p(enum exp_opcode op, struct value *arg1, struct value *arg2)
struct value * value_concat(struct value *arg1, struct value *arg2)
struct value * value_assign(struct value *toval, struct value *fromval)
struct value * value_literal_complex(struct value *arg1, struct value *arg2, struct type *type)
struct value * value_dynamic_cast(struct type *type, struct value *arg)
struct value * value_of_this(const struct language_defn *lang)
struct value * value_reinterpret_cast(struct type *type, struct value *arg)
struct value * value_of_internalvar(struct gdbarch *gdbarch, struct internalvar *var)
struct value * value_from_longest(struct type *type, LONGEST num)
struct value * value_from_contents(struct type *type, const gdb_byte *contents)
struct value * value_from_mpz(struct type *type, const gdb_mpz &v)
struct value * access_value_history(int num)