| GCC Middle and Back End API Reference
    | 


| Data Structures | |
| class | id_tab | 
| Public Types | |
| enum | op_type { OP_PREDICATE , OP_EXPR , OP_CAPTURE , OP_C_EXPR , OP_IF , OP_WITH } | 
| Public Member Functions | |
| c_expr (cpp_reader *r_, location_t loc, vec< cpp_token > code_, unsigned nr_stmts_, vec< id_tab > ids_, cid_map_t *capture_ids_) | |
| void | gen_transform (FILE *f, int, const char *, bool, int, const char *, capture_info *, dt_operand **=0, int=0, const char *=nullptr) final override | 
| Data Fields | |
| cpp_reader * | r | 
| vec< cpp_token > | code | 
| cid_map_t * | capture_ids | 
| unsigned | nr_stmts | 
| vec< id_tab > | ids | 
| enum op_type | type | 
| location_t | location | 
An operator that is represented by native C code. This is always a leaf operand in the AST. This class is also used to represent the code to be generated for 'if' and 'with' expressions.
| 
 | inherited | 
| 
 | inline | 
References capture_ids, code, ids, nr_stmts, operand::OP_C_EXPR, operand::operand(), and r.
Referenced by parser::parse_c_expr(), and replace_id().
| 
 | finaloverridevirtual | 
Generate code for a c_expr which is either the expression inside an if statement or a sequence of statements which computes a result to be stored to DEST.
Reimplemented from operand.
References capture_ids, code, fatal_at(), fprintf_indent(), fputc(), gcc_assert, i, ids, line_table, map, nr_stmts, and r.
| cid_map_t* c_expr::capture_ids | 
Referenced by c_expr(), and gen_transform().
| vec<cpp_token> c_expr::code | 
Referenced by c_expr(), gen_transform(), and parser::parse_c_expr().
Referenced by c_expr(), gen_transform(), lower_for(), and replace_id().
| 
 | inherited | 
| unsigned c_expr::nr_stmts | 
Referenced by c_expr(), gen_transform(), parser::parse_c_expr(), and parser::parse_result().
| cpp_reader* c_expr::r | 
Referenced by c_expr(), and gen_transform().
| 
 | inherited | 
Referenced by inchash::add_hashable_expr(), cmp_operand(), compare_op(), dt_simplify::gen_1(), dt_node::gen_kids(), expr::gen_transform(), initialize_expr_from_cond(), lra_set_insn_recog_data(), operand(), parser::parse_simplify(), phi_translate_1(), and avail_exprs_stack::simplify_binary_operation().