1#ifndef CLANG_C_FRONTEND_CLANG_C_ADJUST_H_
2#define CLANG_C_FRONTEND_CLANG_C_ADJUST_H_
void declare_argc_argv(contextt &context, const symbolt &main_symbol)
The argc'/argv'/envp' symbols clang_c_main looks up unconditionally when main takes arguments.
Definition clang_c_adjust_expr.cpp:1821
virtual void adjust_side_effect_function_call(side_effect_expr_function_callt &expr)
Definition clang_c_adjust_expr.cpp:1173
void set_irep2_owns_arms()
Hand the index rewrite to the IREP2 adjuster.
Definition clang_c_adjust.h:45
bool irep2_owns_arms
Definition clang_c_adjust.h:51
void adjust_derived_to_base(exprt &expr, const irep_idt &base_id)
Definition clang_c_adjust_expr.cpp:292
void do_special_functions(side_effect_expr_function_callt &expr)
Definition clang_c_adjust_expr.cpp:1409
void adjust_comma(exprt &expr)
Definition clang_c_adjust_expr.cpp:1893
bool adjust()
Definition clang_c_adjust_expr.cpp:27
void adjust_side_effect_assignment(exprt &expr)
Definition clang_c_adjust_expr.cpp:1122
virtual void adjust_for(codet &code)
Definition clang_c_adjust_code.cpp:148
virtual void adjust_code(codet &code)
methods for code (codet) adjustment and other IRs derived from codet
Definition clang_c_adjust_code.cpp:37
virtual ~clang_c_adjust()=default
void adjust_float_arith(exprt &expr)
Definition clang_c_adjust_expr.cpp:847
clang_c_adjust(contextt &_context)
Definition clang_c_adjust_expr.cpp:22
bool lower_complex_binary_arithmetic(exprt &expr)
Rewrite a binary arithmetic expression over complex operands into the component-level form,...
Definition clang_c_adjust_expr.cpp:614
void adjust_index(index_exprt &index)
Definition clang_c_adjust_expr.cpp:769
contextt & context
Definition clang_c_adjust.h:52
void adjust_struct(exprt &expr)
Definition clang_c_adjust_expr.cpp:227
void adjust_side_effect_statement_expression(side_effect_exprt &expr)
Definition clang_c_adjust_expr.cpp:1741
virtual void adjust_member(member_exprt &expr)
Definition clang_c_adjust_expr.cpp:486
virtual void adjust_switch(codet &code)
Definition clang_c_adjust_code.cpp:193
void adjust_decl(codet &code)
Definition clang_c_adjust_code.cpp:112
virtual void adjust_expr_rel(exprt &expr)
Definition clang_c_adjust_expr.cpp:835
void adjust_ptr_mem(exprt &expr)
Definition clang_c_adjust_expr.cpp:253
virtual void adjust_ifthenelse(codet &code)
Definition clang_c_adjust_code.cpp:132
void adjust_builtin_va_arg(exprt &expr)
Definition clang_c_adjust_expr.cpp:1910
void adjust_operands(exprt &expr)
Definition clang_c_adjust_expr.cpp:1954
static exprt declare_gcc_polymorphic_builtin(const symbol_exprt &callee, const exprt::operandst &arguments, const locationt &call_location, contextt &context)
Declare the concrete instance of the GCC __sync_* / C11 __c11_atomic_* polymorphic builtin that calle...
Definition clang_c_adjust_polymorphic_functions.cpp:1169
void adjust_call_argument(exprt &arg)
Definition clang_c_adjust_code.cpp:29
virtual void adjust_decl_block(codet &code)
Definition clang_c_adjust_code.cpp:106
virtual void adjust_side_effect(side_effect_exprt &expr)
Definition clang_c_adjust_expr.cpp:440
virtual void adjust_function_call_arguments(side_effect_expr_function_callt &expr)
Definition clang_c_adjust_expr.cpp:1290
virtual void align_se_function_call_return_type(exprt &f_op, side_effect_expr_function_callt &expr)
ancillary methods to support the expr/code adjustments above
Definition clang_c_adjust_expr.cpp:1980
void adjust_address_of(exprt &expr)
Definition clang_c_adjust_expr.cpp:893
void adjust_expr_unary_boolean(exprt &expr)
Definition clang_c_adjust_expr.cpp:1801
bool shadows_user_definition(const irep_idt &identifier, const exprt &f_op) const
True when a name-matched builtin lowering would discard a definition the program supplies,...
Definition clang_c_adjust_expr.cpp:1388
bool has_single_arithmetic_argument(const side_effect_expr_function_callt &expr) const
methods for symbol adjustment
Definition clang_c_adjust_expr.cpp:1379
bool lower_complex_compound_assignment(exprt &expr)
A compound assignment over a complex operand has to be expanded here.
Definition clang_c_adjust_expr.cpp:1093
void adjust_expr_unary_complex(exprt &expr)
Definition clang_c_adjust_expr.cpp:740
void adjust_type(typet &type)
methods for type (typet) adjustment
Definition clang_c_adjust_expr.cpp:1025
static code_blockt instantiate_gcc_polymorphic_builtin(const irep_idt &identifier, const symbol_exprt &function_symbol, contextt &context)
Definition clang_c_adjust_polymorphic_functions.cpp:805
void adjust_sizeof(exprt &expr)
Definition clang_c_adjust_expr.cpp:995
void bind_sideeffect_operands(exprt &expr, code_blockt &block)
Definition clang_c_adjust_expr.cpp:568
void adjust_assign(codet &code)
Definition clang_c_adjust_code.cpp:201
void adjust_expr_binary_boolean(exprt &expr)
Definition clang_c_adjust_expr.cpp:1811
void adjust_base_to_derived(exprt &expr)
Definition clang_c_adjust_expr.cpp:348
symbol_generator tmp_symbol
Definition clang_c_adjust.h:54
namespacet ns
Definition clang_c_adjust.h:53
void finish_complex_lowering(exprt &expr, exprt &result, code_blockt &block)
Definition clang_c_adjust_expr.cpp:597
static exprt is_gcc_polymorphic_builtin(const irep_idt &identifier, const exprt::operandst &arguments)
Definition clang_c_adjust_polymorphic_functions.cpp:256
void adjust_expr_shifts(exprt &expr)
Definition clang_c_adjust_expr.cpp:511
void adjust_expr(exprt &expr)
methods for expression (exprt) adjustment and other IRs derived from exprt
Definition clang_c_adjust_expr.cpp:105
void adjust_dereference(exprt &deref)
Definition clang_c_adjust_expr.cpp:960
virtual void adjust_while(codet &code)
Definition clang_c_adjust_code.cpp:140
void adjust_if(exprt &expr)
Definition clang_c_adjust_expr.cpp:1963
void adjust_expr_binary_arithmetic(exprt &expr)
Definition clang_c_adjust_expr.cpp:711
virtual void adjust_symbol(symbolt &symbol)
Definition clang_c_adjust_expr.cpp:76
virtual void adjust_reference(exprt &expr)
Definition clang_c_adjust_expr.cpp:1987
std::vector< exprt > operandst
Definition expr.h:39
Definition std_expr.h:319
Definition std_expr.h:949
Definition namespace.h:10
Definition std_code.h:905
Definition std_code.h:854
Definition symbol_generator.h:7