GDB (xrefs)
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | List of all members
expr::operation Class Referenceabstract

#include "expression.h"

Inheritance diagram for expr::operation:
expr::tuple_holding_operation< ada_component_up > expr::tuple_holding_operation< struct type *, operation_up > expr::tuple_holding_operation< enum exp_opcode, operation_up, operation_up > expr::tuple_holding_operation< Arg... > expr::tuple_holding_operation< operation_up, std::vector< operation_up > > expr::tuple_holding_operation< operation_up, struct type * > expr::tuple_holding_operation< operation_up, operation_up, operation_up > expr::tuple_holding_operation< operation_up > expr::tuple_holding_operation< std::string, const block *, std::vector< operation_up > > expr::tuple_holding_operation< int, int, std::vector< operation_up > > expr::tuple_holding_operation< exp_opcode, operation_up, operation_up > expr::tuple_holding_operation< operation_up, operation_up > expr::tuple_holding_operation< bool > expr::tuple_holding_operation< enum c_string_type_values, std::vector< std::string > > expr::tuple_holding_operation< exp_opcode, operation_up > expr::tuple_holding_operation< exp_opcode, operation_up, operation_up, type * > expr::tuple_holding_operation< operation_up, type * > expr::tuple_holding_operation< operation_up, operation_up, type * > expr::tuple_holding_operation< enum range_flag, operation_up, operation_up, operation_up > expr::tuple_holding_operation< internalvar * > expr::tuple_holding_operation< int > expr::tuple_holding_operation< struct type *, gdb_mpz > expr::tuple_holding_operation< CORE_ADDR, operation_up, std::vector< operation_up > > expr::tuple_holding_operation< std::string > expr::tuple_holding_operation<> expr::tuple_holding_operation< struct type *, operation_up, std::vector< std::pair< std::string, operation_up > > > expr::tuple_holding_operation< enum range_flag, operation_up, operation_up > expr::tuple_holding_operation< int, operation_up > expr::tuple_holding_operation< operation_up, std::string > expr::tuple_holding_operation< type_instance_flags, std::vector< type * >, operation_up > expr::tuple_holding_operation< struct type * > expr::tuple_holding_operation< symbol * > expr::ada_target_operation expr::float_const_operation expr::tuple_holding_operation< Arg >

Public Member Functions

virtual ~operation ()=default
 
virtual valueevaluate (struct type *expect_type, struct expression *exp, enum noside noside)=0
 
virtual valueevaluate_with_coercion (struct expression *exp, enum noside noside)
 
virtual valueevaluate_for_cast (struct type *expect_type, struct expression *exp, enum noside noside)
 
virtual valueevaluate_for_sizeof (struct expression *exp, enum noside noside)
 
virtual valueevaluate_for_address (struct expression *exp, enum noside noside)
 
virtual valueevaluate_funcall (struct type *expect_type, struct expression *exp, enum noside noside, const std::vector< operation_up > &args)
 
virtual bool constant_p () const
 
virtual bool uses_objfile (struct objfile *objfile) const
 
void generate_ax (struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type=nullptr)
 
virtual enum exp_opcode opcode () const =0
 
virtual void dump (struct ui_file *stream, int depth) const =0
 
virtual void set_outermost ()
 

Protected Member Functions

 operation ()=default
 
 DISABLE_COPY_AND_ASSIGN (operation)
 
valueevaluate_funcall (struct type *expect_type, struct expression *exp, enum noside noside, const char *function_name, const std::vector< operation_up > &args)
 
virtual void do_generate_ax (struct expression *exp, struct agent_expr *ax, struct axs_value *value, struct type *cast_type)
 

Detailed Description

Definition at line 87 of file expression.h.

Constructor & Destructor Documentation

◆ operation()

expr::operation::operation ( )
protecteddefault

◆ ~operation()

virtual expr::operation::~operation ( )
virtualdefault

Member Function Documentation

◆ constant_p()

virtual bool expr::operation::constant_p ( ) const
inlinevirtual

◆ DISABLE_COPY_AND_ASSIGN()

expr::operation::DISABLE_COPY_AND_ASSIGN ( operation )
protected

◆ do_generate_ax()

virtual void expr::operation::do_generate_ax ( struct expression * exp,
struct agent_expr * ax,
struct axs_value * value,
struct type * cast_type )
inlineprotectedvirtual

◆ dump()

virtual void expr::operation::dump ( struct ui_file * stream,
int depth ) const
pure virtual

Implemented in expr::ada_structop_operation, expr::ada_target_operation, expr::tuple_holding_operation< Arg >, expr::tuple_holding_operation< ada_component_up >, expr::tuple_holding_operation< Arg... >, expr::tuple_holding_operation< bool >, expr::tuple_holding_operation< CORE_ADDR, operation_up, std::vector< operation_up > >, expr::tuple_holding_operation< enum c_string_type_values, std::vector< std::string > >, expr::tuple_holding_operation< enum exp_opcode, operation_up, operation_up >, expr::tuple_holding_operation< enum range_flag, operation_up, operation_up >, expr::tuple_holding_operation< enum range_flag, operation_up, operation_up, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up, operation_up, type * >, expr::tuple_holding_operation< int >, expr::tuple_holding_operation< int, int, std::vector< operation_up > >, expr::tuple_holding_operation< int, operation_up >, expr::tuple_holding_operation< internalvar * >, expr::tuple_holding_operation< operation_up >, expr::tuple_holding_operation< operation_up, operation_up >, expr::tuple_holding_operation< operation_up, operation_up, operation_up >, expr::tuple_holding_operation< operation_up, operation_up, type * >, expr::tuple_holding_operation< operation_up, std::string >, expr::tuple_holding_operation< operation_up, std::vector< operation_up > >, expr::tuple_holding_operation< operation_up, struct type * >, expr::tuple_holding_operation< operation_up, type * >, expr::tuple_holding_operation< std::string >, expr::tuple_holding_operation< std::string, const block *, std::vector< operation_up > >, expr::tuple_holding_operation< struct type * >, expr::tuple_holding_operation< struct type *, gdb_mpz >, expr::tuple_holding_operation< struct type *, operation_up >, expr::tuple_holding_operation< struct type *, operation_up, std::vector< std::pair< std::string, operation_up > > >, expr::tuple_holding_operation< symbol * >, expr::tuple_holding_operation< type_instance_flags, std::vector< type * >, operation_up >, expr::tuple_holding_operation<>, and expr::float_const_operation.

Referenced by expr::ada_structop_operation::dump().

◆ evaluate()

virtual value * expr::operation::evaluate ( struct type * expect_type,
struct expression * exp,
enum noside noside )
pure virtual

Implemented in expr::ada_wrapped_operation, expr::ada_string_operation, expr::ada_qual_operation, expr::ada_ternop_range_operation, expr::ada_unop_range_operation, expr::ada_binop_addsub_operation, expr::ada_binop_equal_operation, expr::ada_bitwise_operation< OP >, expr::ada_ternop_slice_operation, expr::ada_binop_in_bounds_operation, expr::ada_unop_atr_operation, expr::ada_var_value_operation, expr::ada_atr_operation< FUNC >, expr::ada_unop_ind_operation, expr::ada_structop_operation, expr::ada_funcall_operation, expr::ada_assign_operation, expr::ada_target_operation, expr::ada_char_operation, expr::ada_concat_operation, expr::c_string_operation, expr::objc_nsstring_operation, expr::objc_selector_operation, expr::objc_msgcall_operation, expr::opencl_binop_operation< OP, FUNC, BASE >, expr::opencl_structop_operation, expr::opencl_logical_binop_operation, expr::opencl_ternop_cond_operation, expr::float_const_operation, expr::scope_operation, expr::var_value_operation, expr::long_const_operation, expr::var_msym_value_operation, expr::var_entry_value_operation, expr::func_static_var_operation, expr::last_operation, expr::register_operation, expr::bool_operation, expr::internalvar_operation, expr::string_operation, expr::ternop_slice_operation, expr::ternop_cond_operation, expr::complex_operation, expr::structop_operation, expr::structop_ptr_operation, expr::structop_member_operation, expr::structop_mptr_operation, expr::concat_operation, expr::add_operation, expr::sub_operation, expr::binop_operation< OP, FUNC >, expr::binop_operation< BINOP_REPEAT, eval_op_repeat >, expr::comparison_operation< OP, FUNC >, expr::comparison_operation< BINOP_EQUAL, eval_op_equal >, expr::comma_operation, expr::unop_operation< OP, FUNC >, expr::unop_incr_operation< OP, FUNC >, expr::unop_ind_base_operation, expr::type_operation, expr::typeof_operation, expr::decltype_operation, expr::typeid_operation, expr::unop_addr_operation, expr::unop_sizeof_operation, expr::unop_alignof_operation, expr::unop_memval_operation, expr::unop_memval_type_operation, expr::op_this_operation, expr::type_instance_operation, expr::assign_operation, expr::assign_modify_operation, expr::unop_extract_operation, expr::unop_cast_operation, expr::unop_cast_type_operation, expr::cxx_cast_operation< OP, FUNC >, expr::multi_subscript_operation, expr::logical_and_operation, expr::logical_or_operation, expr::adl_func_operation, expr::array_operation, expr::funcall_operation, expr::fortran_range_operation, expr::fortran_undetermined, expr::fortran_bound_1arg, expr::fortran_bound_2arg, expr::fortran_structop_operation, expr::m2_unop_high_operation, expr::m2_binop_subscript_operation, expr::rust_unop_ind_operation, expr::rust_subscript_operation, expr::rust_unop_addr_operation, expr::rust_range_operation, expr::rust_struct_anon, expr::rust_structop, expr::rust_aggregate_operation, expr::rust_parenthesized_operation, expr::fortran_kind_2arg< OP, FUNC >, expr::fortran_kind_3arg< OP, FUNC >, and expr::fortran_bound_3arg.

Referenced by evaluate_for_address(), evaluate_for_cast(), evaluate_for_sizeof(), evaluate_with_coercion(), fetch_subexp_value(), and generate_ax().

◆ evaluate_for_address()

value * expr::operation::evaluate_for_address ( struct expression * exp,
enum noside noside  )
virtual

◆ evaluate_for_cast()

value * expr::operation::evaluate_for_cast ( struct type * expect_type,
struct expression * exp,
enum noside noside  )
virtual

◆ evaluate_for_sizeof()

value * expr::operation::evaluate_for_sizeof ( struct expression * exp,
enum noside noside  )
virtual

◆ evaluate_funcall() [1/2]

value * expr::operation::evaluate_funcall ( struct type * expect_type,
struct expression * exp,
enum noside noside ,
const char * function_name,
const std::vector< operation_up > & args )
protected

◆ evaluate_funcall() [2/2]

virtual value * expr::operation::evaluate_funcall ( struct type * expect_type,
struct expression * exp,
enum noside noside ,
const std::vector< operation_up > & args )
inlinevirtual

◆ evaluate_with_coercion()

virtual value * expr::operation::evaluate_with_coercion ( struct expression * exp,
enum noside noside  )
inlinevirtual

◆ generate_ax()

void expr::operation::generate_ax ( struct expression * exp,
struct agent_expr * ax,
struct axs_value * value,
struct type * cast_type = nullptr )

◆ opcode()

virtual enum exp_opcode expr::operation::opcode ( ) const
pure virtual

Implemented in expr::ada_wrapped_operation, expr::ada_qual_operation, expr::ada_ternop_range_operation, expr::ada_unop_range_operation, expr::ada_binop_addsub_operation, expr::ada_binop_equal_operation, expr::ada_bitwise_operation< OP >, expr::ada_ternop_slice_operation, expr::ada_binop_in_bounds_operation, expr::ada_unop_atr_operation, expr::ada_atr_operation< FUNC >, expr::ada_structop_operation, expr::ada_funcall_operation, expr::ada_assign_operation, expr::ada_target_operation, expr::ada_aggregate_operation, expr::c_string_operation, expr::objc_nsstring_operation, expr::objc_selector_operation, expr::objc_msgcall_operation, expr::opencl_binop_operation< OP, FUNC, BASE >, expr::opencl_structop_operation, expr::opencl_logical_binop_operation, expr::opencl_ternop_cond_operation, expr::float_const_operation, expr::scope_operation, expr::var_value_operation, expr::long_const_operation, expr::var_msym_value_operation, expr::var_entry_value_operation, expr::func_static_var_operation, expr::last_operation, expr::register_operation, expr::bool_operation, expr::internalvar_operation, expr::string_operation, expr::ternop_slice_operation, expr::ternop_cond_operation, expr::complex_operation, expr::structop_operation, expr::structop_ptr_operation, expr::structop_member_operation, expr::structop_mptr_operation, expr::concat_operation, expr::add_operation, expr::sub_operation, expr::binop_operation< OP, FUNC >, expr::binop_operation< BINOP_REPEAT, eval_op_repeat >, expr::comma_operation, expr::unop_operation< OP, FUNC >, expr::unop_incr_operation< OP, FUNC >, expr::unop_ind_base_operation, expr::type_operation, expr::typeof_operation, expr::decltype_operation, expr::typeid_operation, expr::unop_addr_operation, expr::unop_sizeof_operation, expr::unop_alignof_operation, expr::unop_memval_operation, expr::unop_memval_type_operation, expr::op_this_operation, expr::type_instance_operation, expr::assign_operation, expr::assign_modify_operation, expr::unop_extract_operation, expr::unop_cast_operation, expr::unop_cast_type_operation, expr::cxx_cast_operation< OP, FUNC >, expr::multi_subscript_operation, expr::logical_and_operation, expr::logical_or_operation, expr::adl_func_operation, expr::array_operation, expr::funcall_operation, expr::fortran_kind_2arg< OP, FUNC >, expr::fortran_kind_3arg< OP, FUNC >, expr::fortran_range_operation, expr::fortran_undetermined, expr::fortran_bound_1arg, expr::fortran_bound_2arg, expr::fortran_bound_3arg, expr::fortran_structop_operation, expr::m2_unop_high_operation, expr::m2_binop_subscript_operation, expr::rust_subscript_operation, expr::rust_unop_addr_operation, expr::rust_range_operation, expr::rust_struct_anon, expr::rust_structop, expr::rust_aggregate_operation, and expr::rust_parenthesized_operation.

Referenced by expr::assign_operation::do_generate_ax(), expr::assign_modify_operation::do_generate_ax(), expr::tuple_holding_operation< Arg >::dump(), expr::structop_base_operation::evaluate_funcall(), and expr::structop_member_base::evaluate_funcall().

◆ set_outermost()

virtual void expr::operation::set_outermost ( )
inlinevirtual

Reimplemented in expr::var_msym_value_operation.

Definition at line 163 of file expression.h.

◆ uses_objfile()

virtual bool expr::operation::uses_objfile ( struct objfile * objfile) const
inlinevirtual

Reimplemented in expr::tuple_holding_operation< Arg >, expr::tuple_holding_operation< ada_component_up >, expr::tuple_holding_operation< Arg... >, expr::tuple_holding_operation< bool >, expr::tuple_holding_operation< CORE_ADDR, operation_up, std::vector< operation_up > >, expr::tuple_holding_operation< enum c_string_type_values, std::vector< std::string > >, expr::tuple_holding_operation< enum exp_opcode, operation_up, operation_up >, expr::tuple_holding_operation< enum range_flag, operation_up, operation_up >, expr::tuple_holding_operation< enum range_flag, operation_up, operation_up, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up, operation_up >, expr::tuple_holding_operation< exp_opcode, operation_up, operation_up, type * >, expr::tuple_holding_operation< int >, expr::tuple_holding_operation< int, int, std::vector< operation_up > >, expr::tuple_holding_operation< int, operation_up >, expr::tuple_holding_operation< internalvar * >, expr::tuple_holding_operation< operation_up >, expr::tuple_holding_operation< operation_up, operation_up >, expr::tuple_holding_operation< operation_up, operation_up, operation_up >, expr::tuple_holding_operation< operation_up, operation_up, type * >, expr::tuple_holding_operation< operation_up, std::string >, expr::tuple_holding_operation< operation_up, std::vector< operation_up > >, expr::tuple_holding_operation< operation_up, struct type * >, expr::tuple_holding_operation< operation_up, type * >, expr::tuple_holding_operation< std::string >, expr::tuple_holding_operation< std::string, const block *, std::vector< operation_up > >, expr::tuple_holding_operation< struct type * >, expr::tuple_holding_operation< struct type *, gdb_mpz >, expr::tuple_holding_operation< struct type *, operation_up >, expr::tuple_holding_operation< struct type *, operation_up, std::vector< std::pair< std::string, operation_up > > >, expr::tuple_holding_operation< symbol * >, expr::tuple_holding_operation< type_instance_flags, std::vector< type * >, operation_up >, and expr::tuple_holding_operation<>.

Definition at line 147 of file expression.h.


The documentation for this class was generated from the following files: