stage3/narrow_candidate_datatypes.hh
changeset 480 8a58d7b8b26c
parent 478 b13feab3b918
child 502 a6211f73690b
equal deleted inserted replaced
479:a174d61f2087 480:8a58d7b8b26c
    44     symbol_c *il_operand;
    44     symbol_c *il_operand;
    45     il_instruction_c *fake_prev_il_instruction;
    45     il_instruction_c *fake_prev_il_instruction;
    46     std::vector <symbol_c *> *prev_il_instructions;
    46     std::vector <symbol_c *> *prev_il_instructions;
    47     std::vector <symbol_c *> *prev_il_instructions_intersected_datatypes;
    47     std::vector <symbol_c *> *prev_il_instructions_intersected_datatypes;
    48 
    48 
    49     bool is_widening_compatible(const struct widen_entry widen_table[], symbol_c *left_type, symbol_c *right_type, symbol_c *result_type, bool &deprecated_status);
    49     bool is_widening_compatible(const struct widen_entry widen_table[], symbol_c *left_type, symbol_c *right_type, symbol_c *result_type, bool *deprecated_status = NULL);
    50 
    50 
    51     void  narrow_function_invocation(symbol_c *f_call, generic_function_call_t fcall_data);
    51     void  narrow_function_invocation(symbol_c *f_call, generic_function_call_t fcall_data);
    52     void  narrow_nonformal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    52     void  narrow_nonformal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    53     void  narrow_formal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    53     void  narrow_formal_call(symbol_c *f_call, symbol_c *f_decl, int *ext_parm_count = NULL);
    54     void *narrow_implicit_il_fb_call(symbol_c *il_instruction, const char *param_name, symbol_c *&called_fb_declaration);
    54     void *narrow_implicit_il_fb_call(symbol_c *il_instruction, const char *param_name, symbol_c *&called_fb_declaration);
    55 
    55 
    56     void *handle_il_instruction(symbol_c *symbol);
    56     void *handle_il_instruction(symbol_c *symbol);
    57     void *handle_il_instruction_widen(symbol_c *symbol, bool &deprecated_operation, const struct widen_entry widen_table[]);
    57     void *narrow_binary_operator  (const struct widen_entry widen_table[], symbol_c *symbol,                                     bool *deprecated_operation = NULL);
       
    58     void *narrow_binary_expression(const struct widen_entry widen_table[], symbol_c *symbol, symbol_c *l_expr, symbol_c *r_expr, bool *deprecated_operation = NULL);
    58 
    59 
    59     void *narrow_conditional_flow_control_IL_instruction(symbol_c *symbol);
    60     void *narrow_conditional_flow_control_IL_instruction(symbol_c *symbol);
    60 
    61 
    61 
    62 
    62   public:
    63   public: