28#include "gdbsupport/traits.h"
29#include "gdbsupport/enum-flags.h"
51 struct type *
type,
const char *
string);
220 if (ty_objfile !=
nullptr)
265 return op->uses_objfile (
objfile);
291 for (
const auto &item : collection)
299template<
typename S,
typename T>
307extern bool check_objfile (
const std::unique_ptr<ada_component> &comp,
314 op->dump (stream, depth);
320 const std::string &str);
336 type_instance_flags
flags);
342 const std::unique_ptr<ada_component> &comp);
347 const std::vector<T> &vals)
349 gdb_printf (stream, _(
"%*sVector:\n"), depth,
"");
350 for (
auto &item : vals)
354template<
typename X,
typename Y>
357 const std::pair<X, Y> &vals)
366template<
typename... Arg>
397 template<
int I,
typename...
T>
404 template<
int I,
typename...
T>
405 typename std::enable_if<
I <
sizeof... (
T),
void>
::type
415 template<
int I,
typename...
T>
416 typename std::enable_if<
I ==
sizeof... (
T),
bool>
::type
423 template<
int I,
typename...
T>
424 typename std::enable_if<
I <
sizeof... (
T),
bool>
::type
441 return item->constant_p ();
496 for (
const auto &item : collection)
502template<
typename S,
typename T>
512template<
typename... Arg>
527 template<
int I,
typename...
T>
528 typename std::enable_if<
I ==
sizeof... (
T),
bool>
::type
534 template<
int I,
typename...
T>
535 typename std::enable_if<
I <
sizeof... (
T),
bool>
::type
578 void dump (
struct ui_file *stream,
int depth)
const override;
591 using maybe_constant_operation::maybe_constant_operation;
608 const std::vector<operation_up> &args)
override;
618 struct type *cast_type)
628 using maybe_constant_operation::maybe_constant_operation;
650 const std::vector<operation_up> &args)
override;
653 {
return OP_VAR_VALUE; }
666 struct type *cast_type)
696 struct type *cast_type)
705 using maybe_constant_operation::maybe_constant_operation;
728 const std::vector<operation_up> &args)
override
730 const char *
name = std::get<0> (
m_storage).minsym->print_name ();
735 {
return OP_VAR_MSYM_VALUE; }
750 struct type *cast_type)
770 {
return OP_VAR_ENTRY_VALUE; }
778 using maybe_constant_operation::maybe_constant_operation;
790 {
return OP_FUNC_STATIC_VAR; }
827 {
return OP_REGISTER; }
840 struct type *cast_type)
887 {
return OP_INTERNALVAR; }
894 struct type *cast_type)
910 {
return OP_STRING; }
918 using maybe_constant_operation::maybe_constant_operation;
934 {
return TERNOP_SLICE; }
942 using maybe_constant_operation::maybe_constant_operation;
957 {
return TERNOP_COND; }
964 struct type *cast_type)
973 using maybe_constant_operation::maybe_constant_operation;
986 {
return OP_COMPLEX; }
1003 const std::vector<operation_up> &args)
override;
1010 return complete (exp, tracker,
"");
1028 using structop_base_operation::structop_base_operation;
1040 {
return STRUCTOP_STRUCT; }
1047 struct type *cast_type)
1062 using structop_base_operation::structop_base_operation;
1074 {
return STRUCTOP_PTR; }
1081 struct type *cast_type)
1101 const std::vector<operation_up> &args)
override;
1109 using structop_member_base::structop_member_base;
1123 {
return STRUCTOP_MEMBER; }
1131 using structop_member_base::structop_member_base;
1145 {
return STRUCTOP_MPTR; }
1153 using maybe_constant_operation::maybe_constant_operation;
1167 {
return BINOP_CONCAT; }
1175 using maybe_constant_operation::maybe_constant_operation;
1189 {
return BINOP_ADD; }
1196 struct type *cast_type)
1211 using maybe_constant_operation::maybe_constant_operation;
1225 {
return BINOP_SUB; }
1232 struct type *cast_type)
1247template<enum exp_opcode OP, binary_ftype FUNC>
1253 using maybe_constant_operation::maybe_constant_operation;
1263 return FUNC (expect_type, exp,
noside,
OP, lhs, rhs);
1270template<enum exp_opcode OP, binary_ftype FUNC>
1283 struct type *cast_type)
1321template<enum exp_opcode OP, binary_ftype FUNC>
1338 return FUNC (expect_type, exp,
noside,
OP, lhs, rhs);
1347 using comparison_operation::comparison_operation;
1378 struct type *cast_type)
1388 using maybe_constant_operation::maybe_constant_operation;
1402 {
return BINOP_COMMA; }
1409 struct type *cast_type)
1416 struct value *arg1);
1419template<enum exp_opcode OP, unary_ftype FUNC>
1425 using maybe_constant_operation::maybe_constant_operation;
1432 return FUNC (expect_type, exp,
noside,
OP, val);
1441template<enum exp_opcode OP, unary_ftype FUNC>
1452 struct type *cast_type)
1469template<enum exp_opcode OP, unary_ftype FUNC>
1482 return FUNC (expect_type, exp,
noside,
OP, val);
1510 if (expect_type !=
nullptr && expect_type->
code () == TYPE_CODE_PTR)
1523 {
return UNOP_IND; }
1532 using unop_ind_base_operation::unop_ind_base_operation;
1539 struct type *cast_type)
1576 using maybe_constant_operation::maybe_constant_operation;
1583 return std::get<0> (
m_storage)->evaluate (
nullptr, exp,
1586 error (_(
"Attempt to use a type as an expression"));
1590 {
return OP_TYPEOF; }
1599 using maybe_constant_operation::maybe_constant_operation;
1608 = std::get<0> (
m_storage)->evaluate (
nullptr, exp,
1611 if (sub_op == BINOP_SUBSCRIPT
1612 || sub_op == STRUCTOP_MEMBER
1613 || sub_op == STRUCTOP_MPTR
1614 || sub_op == UNOP_IND
1615 || sub_op == STRUCTOP_STRUCT
1616 || sub_op == STRUCTOP_PTR
1617 || sub_op == OP_SCOPE)
1631 error (_(
"Attempt to use a type as an expression"));
1635 {
return OP_DECLTYPE; }
1652 = ((sub_op == OP_TYPE || sub_op == OP_DECLTYPE || sub_op == OP_TYPEOF)
1664 {
return OP_TYPEID; }
1673 using maybe_constant_operation::maybe_constant_operation;
1684 {
return UNOP_ADDR; }
1697 struct type *cast_type)
1712 using maybe_constant_operation::maybe_constant_operation;
1722 {
return UNOP_SIZEOF; }
1729 struct type *cast_type)
1739 using maybe_constant_operation::maybe_constant_operation;
1751 {
return UNOP_ALIGNOF; }
1778 {
return UNOP_MEMVAL; }
1791 struct type *cast_type)
1808 = std::get<0> (
m_storage)->evaluate (expect_type, exp,
1822 {
return UNOP_MEMVAL_TYPE; }
1829 struct type *cast_type)
1856 struct type *cast_type)
1874 {
return TYPE_INSTANCE; }
1909 {
return BINOP_ASSIGN; }
1922 struct type *cast_type)
1945 {
return BINOP_ASSIGN_MODIFY; }
1952 struct type *cast_type)
1965 using maybe_constant_operation::maybe_constant_operation;
1971 {
return UNOP_EXTRACT; }
1984 struct type *cast_type)
override;
1993 using maybe_constant_operation::maybe_constant_operation;
2004 {
return UNOP_CAST; }
2017 struct type *cast_type)
2028 using maybe_constant_operation::maybe_constant_operation;
2041 {
return UNOP_CAST_TYPE; }
2048 struct type *cast_type)
2056template<exp_opcode OP, cxx_cast_ftype FUNC>
2062 using maybe_constant_operation::maybe_constant_operation;
2072 return FUNC (
type, rhs);
2097 {
return MULTI_SUBSCRIPT; }
2106 using maybe_constant_operation::maybe_constant_operation;
2113 {
return BINOP_LOGICAL_AND; }
2120 struct type *cast_type)
2130 using maybe_constant_operation::maybe_constant_operation;
2137 {
return BINOP_LOGICAL_OR; }
2144 struct type *cast_type)
2153 std::vector<operation_up>>
2164 {
return OP_ADL_FUNC; }
2180 {
return OP_ARRAY; }
2202 return std::get<0> (
m_storage)->evaluate_funcall (expect_type, exp,
noside,
2207 {
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)
struct objfile * block_objfile(const struct block *block)
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
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_ternop(struct type *expect_type, struct expression *exp, enum noside noside, struct value *array, struct value *low, struct value *upper)
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_ternop(struct type *expect_type, struct expression *exp, enum noside noside, struct value *array, struct value *low, struct value *upper)
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)
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 *)
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
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 type * value_type(const struct value *value)
struct value * value_of_internalvar(struct gdbarch *gdbarch, struct internalvar *var)
struct value * allocate_value(struct type *type)
struct value * value_from_longest(struct type *type, LONGEST num)
struct value * value_from_contents(struct type *type, const gdb_byte *contents)
struct value * access_value_history(int num)