cprover
c_typecheck_baset Class Referenceabstract

#include <c_typecheck_base.h>

+ Inheritance diagram for c_typecheck_baset:
+ Collaboration diagram for c_typecheck_baset:

Public Member Functions

 c_typecheck_baset (symbol_tablet &_symbol_table, const std::string &_module, message_handlert &_message_handler)
 
 c_typecheck_baset (symbol_tablet &_symbol_table1, const symbol_tablet &_symbol_table2, const std::string &_module, message_handlert &_message_handler)
 
virtual ~c_typecheck_baset ()
 
virtual void typecheck ()=0
 
virtual void typecheck_expr (exprt &expr)
 
- Public Member Functions inherited from typecheckt
 typecheckt (message_handlert &_message_handler)
 
virtual ~typecheckt ()
 
virtual bool typecheck_main ()
 
- Public Member Functions inherited from messaget
virtual void set_message_handler (message_handlert &_message_handler)
 
message_handlertget_message_handler ()
 
 messaget ()
 
 messaget (const messaget &other)
 
messagetoperator= (const messaget &other)
 
 messaget (message_handlert &_message_handler)
 
virtual ~messaget ()
 
mstreamtget_mstream (unsigned message_level) const
 
mstreamterror () const
 
mstreamtwarning () const
 
mstreamtresult () const
 
mstreamtstatus () const
 
mstreamtstatistics () const
 
mstreamtprogress () const
 
mstreamtdebug () const
 
void conditional_output (mstreamt &mstream, const std::function< void(mstreamt &)> &output_generator) const
 Generate output to message_stream using output_generator if the configured verbosity is at least as high as that of message_stream. More...
 
- Public Member Functions inherited from namespacet
 namespacet (const symbol_table_baset &_symbol_table)
 
 namespacet (const symbol_table_baset &_symbol_table1, const symbol_table_baset &_symbol_table2)
 
 namespacet (const symbol_table_baset *_symbol_table1, const symbol_table_baset *_symbol_table2)
 
bool lookup (const irep_idt &name, const symbolt *&symbol) const override
 See documentation for namespace_baset::lookup(). More...
 
std::size_t smallest_unused_suffix (const std::string &prefix) const override
 See documentation for namespace_baset::smallest_unused_suffix(). More...
 
const symbol_table_basetget_symbol_table () const
 Return first symbol table registered with the namespace. More...
 
const symboltlookup (const irep_idt &name) const
 Lookup a symbol in the namespace. More...
 
const symboltlookup (const symbol_exprt &) const
 Generic lookup function for a symbol expression in a symbol table. More...
 
const symboltlookup (const symbol_typet &) const
 Generic lookup function for a symbol type in a symbol table. More...
 
const symboltlookup (const tag_typet &) const
 Generic lookup function for a tag type in a symbol table. More...
 
virtual bool lookup (const irep_idt &name, const symbolt *&symbol) const=0
 Searches for a symbol named name. More...
 
- Public Member Functions inherited from namespace_baset
const symboltlookup (const irep_idt &name) const
 Lookup a symbol in the namespace. More...
 
const symboltlookup (const symbol_exprt &) const
 Generic lookup function for a symbol expression in a symbol table. More...
 
const symboltlookup (const symbol_typet &) const
 Generic lookup function for a symbol type in a symbol table. More...
 
const symboltlookup (const tag_typet &) const
 Generic lookup function for a tag type in a symbol table. More...
 
virtual ~namespace_baset ()
 
void follow_macros (exprt &) const
 Follow macros to their values in a given expression. More...
 
const typetfollow (const typet &) const
 Resolve type symbol to the type it points to. More...
 
const typetfollow_tag (const union_tag_typet &) const
 Follow type tag of union type. More...
 
const typetfollow_tag (const struct_tag_typet &) const
 Follow type tag of struct type. More...
 
const typetfollow_tag (const c_enum_tag_typet &) const
 Follow type tag of enum type. More...
 

Protected Types

typedef std::unordered_map< irep_idt, typetid_type_mapt
 
typedef std::unordered_map< irep_idt, irep_idtasm_label_mapt
 

Protected Member Functions

virtual std::string to_string (const exprt &expr)
 
virtual std::string to_string (const typet &type)
 
virtual void do_initializer (exprt &initializer, const typet &type, bool force_constant)
 
virtual exprt do_initializer_rec (const exprt &value, const typet &type, bool force_constant)
 initialize something of type ‘type’ with given value ‘value’ More...
 
virtual exprt do_initializer_list (const exprt &value, const typet &type, bool force_constant)
 
virtual exprt::operandst::const_iterator do_designated_initializer (exprt &result, designatort &designator, const exprt &initializer_list, exprt::operandst::const_iterator init_it, bool force_constant)
 
designatort make_designator (const typet &type, const exprt &src)
 
void designator_enter (const typet &type, designatort &designator)
 
void increment_designator (designatort &designator)
 
bool gcc_vector_types_compatible (const vector_typet &, const vector_typet &)
 
virtual void implicit_typecast (exprt &expr, const typet &type)
 
virtual void implicit_typecast_arithmetic (exprt &expr)
 
virtual void implicit_typecast_arithmetic (exprt &expr1, exprt &expr2)
 
virtual void implicit_typecast_bool (exprt &expr)
 
virtual void start_typecheck_code ()
 
virtual void typecheck_code (codet &code)
 
virtual void typecheck_assign (codet &expr)
 
virtual void typecheck_asm (codet &code)
 
virtual void typecheck_block (code_blockt &code)
 
virtual void typecheck_break (codet &code)
 
virtual void typecheck_continue (codet &code)
 
virtual void typecheck_decl (codet &code)
 
virtual void typecheck_expression (codet &code)
 
virtual void typecheck_for (codet &code)
 
virtual void typecheck_goto (code_gotot &code)
 
virtual void typecheck_ifthenelse (code_ifthenelset &code)
 
virtual void typecheck_label (code_labelt &code)
 
virtual void typecheck_switch_case (code_switch_caset &code)
 
virtual void typecheck_gcc_computed_goto (codet &code)
 
virtual void typecheck_gcc_switch_case_range (codet &code)
 
virtual void typecheck_gcc_local_label (codet &code)
 
virtual void typecheck_return (codet &code)
 
virtual void typecheck_switch (code_switcht &code)
 
virtual void typecheck_while (code_whilet &code)
 
virtual void typecheck_dowhile (code_dowhilet &code)
 
virtual void typecheck_start_thread (codet &code)
 
virtual void typecheck_spec_expr (codet &code, const irep_idt &spec)
 
virtual void typecheck_expr_builtin_va_arg (exprt &expr)
 
virtual void typecheck_expr_builtin_offsetof (exprt &expr)
 
virtual void typecheck_expr_cw_va_arg_typeof (exprt &expr)
 
virtual void typecheck_expr_main (exprt &expr)
 
virtual void typecheck_expr_operands (exprt &expr)
 
virtual void typecheck_expr_comma (exprt &expr)
 
virtual void typecheck_expr_constant (exprt &expr)
 
virtual void typecheck_expr_side_effect (side_effect_exprt &expr)
 
virtual void typecheck_expr_unary_arithmetic (exprt &expr)
 
virtual void typecheck_expr_unary_boolean (exprt &expr)
 
virtual void typecheck_expr_binary_arithmetic (exprt &expr)
 
virtual void typecheck_expr_shifts (shift_exprt &expr)
 
virtual void typecheck_expr_pointer_arithmetic (exprt &expr)
 
virtual void typecheck_arithmetic_pointer (const exprt &expr)
 
virtual void typecheck_expr_binary_boolean (exprt &expr)
 
virtual void typecheck_expr_trinary (if_exprt &expr)
 
virtual void typecheck_expr_address_of (exprt &expr)
 
virtual void typecheck_expr_dereference (exprt &expr)
 
virtual void typecheck_expr_member (exprt &expr)
 
virtual void typecheck_expr_ptrmember (exprt &expr)
 
virtual void typecheck_expr_rel (binary_relation_exprt &expr)
 
virtual void typecheck_expr_rel_vector (binary_relation_exprt &expr)
 
virtual void adjust_float_rel (exprt &expr)
 
virtual void typecheck_expr_index (exprt &expr)
 
virtual void typecheck_expr_typecast (exprt &expr)
 
virtual void typecheck_expr_symbol (exprt &expr)
 
virtual void typecheck_expr_sizeof (exprt &expr)
 
virtual void typecheck_expr_alignof (exprt &expr)
 
virtual void typecheck_expr_function_identifier (exprt &expr)
 
virtual void typecheck_side_effect_gcc_conditional_expression (side_effect_exprt &expr)
 
virtual void typecheck_side_effect_function_call (side_effect_expr_function_callt &expr)
 
virtual void typecheck_side_effect_assignment (side_effect_exprt &expr)
 
virtual void typecheck_side_effect_statement_expression (side_effect_exprt &expr)
 
virtual void typecheck_function_call_arguments (side_effect_expr_function_callt &expr)
 Typecheck the parameters in a function call expression, and where necessary, make implicit casts around parameters explicit. More...
 
virtual exprt do_special_functions (side_effect_expr_function_callt &expr)
 
virtual void make_index_type (exprt &expr)
 
virtual void make_constant (exprt &expr)
 
virtual void make_constant_index (exprt &expr)
 
virtual bool gcc_types_compatible_p (const typet &, const typet &)
 
virtual void typecheck_type (typet &type)
 
virtual void typecheck_compound_type (struct_union_typet &type)
 
virtual void typecheck_compound_body (struct_union_typet &type)
 
virtual void typecheck_c_enum_type (typet &type)
 
virtual void typecheck_c_enum_tag_type (c_enum_tag_typet &type)
 
virtual void typecheck_code_type (code_typet &type)
 
virtual void typecheck_typedef_type (typet &type)
 
virtual void typecheck_c_bit_field_type (c_bit_field_typet &type)
 
virtual void typecheck_typeof_type (typet &type)
 
virtual void typecheck_array_type (array_typet &type)
 
virtual void typecheck_vector_type (vector_typet &type)
 
virtual void typecheck_custom_type (typet &type)
 
virtual void adjust_function_parameter (typet &type) const
 
virtual bool is_complete_type (const typet &type) const
 
typet enum_constant_type (const mp_integer &min, const mp_integer &max) const
 
typet enum_underlying_type (const mp_integer &min, const mp_integer &max, bool is_packed) const
 
void make_already_typechecked (typet &dest)
 
void add_argc_argv (const symbolt &main_symbol)
 
void move_symbol (symbolt &symbol, symbolt *&new_symbol)
 
void move_symbol (symbolt &symbol)
 
void typecheck_declaration (ansi_c_declarationt &)
 
void typecheck_symbol (symbolt &symbol)
 
void typecheck_new_symbol (symbolt &symbol)
 
void typecheck_redefinition_type (symbolt &old_symbol, symbolt &new_symbol)
 
void typecheck_redefinition_non_type (symbolt &old_symbol, symbolt &new_symbol)
 
void typecheck_function_body (symbolt &symbol)
 
virtual void do_initializer (symbolt &symbol)
 
void apply_asm_label (const irep_idt &asm_label, symbolt &symbol)
 

Static Protected Member Functions

static void add_rounding_mode (exprt &)
 
static bool is_numeric_type (const typet &src)
 

Protected Attributes

symbol_tabletsymbol_table
 
const irep_idt module
 
const irep_idt mode
 
symbolt current_symbol
 
id_type_mapt parameter_map
 
bool break_is_allowed
 
bool continue_is_allowed
 
bool case_is_allowed
 
typet switch_op_type
 
typet return_type
 
std::map< irep_idt, source_locationtlabels_defined
 
std::map< irep_idt, source_locationtlabels_used
 
std::list< codetclean_code
 
asm_label_mapt asm_label_map
 
- Protected Attributes inherited from messaget
message_handlertmessage_handler
 
mstreamt mstream
 
- Protected Attributes inherited from namespacet
const symbol_table_basetsymbol_table1
 
const symbol_table_basetsymbol_table2
 

Additional Inherited Members

- Public Types inherited from messaget
enum  message_levelt {
  M_ERROR =1, M_WARNING =2, M_RESULT =4, M_STATUS =6,
  M_STATISTICS =8, M_PROGRESS =9, M_DEBUG =10
}
 
- Static Public Member Functions inherited from messaget
static unsigned eval_verbosity (const std::string &user_input, const message_levelt default_verbosity, message_handlert &dest)
 Parse a (user-)provided string as a verbosity level and set it as the verbosity of dest. More...
 
static commandt command (unsigned c)
 Create an ECMA-48 SGR (Select Graphic Rendition) command. More...
 
- Static Public Attributes inherited from messaget
static eomt eom
 
static const commandt reset
 return to default formatting, as defined by the terminal More...
 
static const commandt red
 render text with red foreground color More...
 
static const commandt green
 render text with green foreground color More...
 
static const commandt yellow
 render text with yellow foreground color More...
 
static const commandt blue
 render text with blue foreground color More...
 
static const commandt magenta
 render text with magenta foreground color More...
 
static const commandt cyan
 render text with cyan foreground color More...
 
static const commandt bright_red
 render text with bright red foreground color More...
 
static const commandt bright_green
 render text with bright green foreground color More...
 
static const commandt bright_yellow
 render text with bright yellow foreground color More...
 
static const commandt bright_blue
 render text with bright blue foreground color More...
 
static const commandt bright_magenta
 render text with bright magenta foreground color More...
 
static const commandt bright_cyan
 render text with bright cyan foreground color More...
 
static const commandt bold
 render text with bold font More...
 
static const commandt faint
 render text with faint font More...
 
static const commandt italic
 render italic text More...
 
static const commandt underline
 render underlined text More...
 

Detailed Description

Definition at line 25 of file c_typecheck_base.h.

Member Typedef Documentation

◆ asm_label_mapt

typedef std::unordered_map<irep_idt, irep_idt> c_typecheck_baset::asm_label_mapt
protected

Definition at line 272 of file c_typecheck_base.h.

◆ id_type_mapt

typedef std::unordered_map<irep_idt, typet> c_typecheck_baset::id_type_mapt
protected

Definition at line 72 of file c_typecheck_base.h.

Constructor & Destructor Documentation

◆ c_typecheck_baset() [1/2]

c_typecheck_baset::c_typecheck_baset ( symbol_tablet _symbol_table,
const std::string &  _module,
message_handlert _message_handler 
)
inline

Definition at line 30 of file c_typecheck_base.h.

◆ c_typecheck_baset() [2/2]

c_typecheck_baset::c_typecheck_baset ( symbol_tablet _symbol_table1,
const symbol_tablet _symbol_table2,
const std::string &  _module,
message_handlert _message_handler 
)
inline

Definition at line 45 of file c_typecheck_base.h.

◆ ~c_typecheck_baset()

virtual c_typecheck_baset::~c_typecheck_baset ( )
inlinevirtual

Definition at line 61 of file c_typecheck_base.h.

Member Function Documentation

◆ add_argc_argv()

void c_typecheck_baset::add_argc_argv ( const symbolt main_symbol)
protected

Definition at line 16 of file c_typecheck_argc_argv.cpp.

◆ add_rounding_mode()

void c_typecheck_baset::add_rounding_mode ( exprt expr)
staticprotected

Definition at line 54 of file c_typecheck_expr.cpp.

◆ adjust_float_rel()

void c_typecheck_baset::adjust_float_rel ( exprt expr)
protectedvirtual

Definition at line 1327 of file c_typecheck_expr.cpp.

◆ adjust_function_parameter()

void c_typecheck_baset::adjust_function_parameter ( typet type) const
protectedvirtual

Definition at line 1542 of file c_typecheck_type.cpp.

◆ apply_asm_label()

void c_typecheck_baset::apply_asm_label ( const irep_idt asm_label,
symbolt symbol 
)
protected

Definition at line 586 of file c_typecheck_base.cpp.

◆ designator_enter()

void c_typecheck_baset::designator_enter ( const typet type,
designatort designator 
)
protected

Definition at line 260 of file c_typecheck_initializer.cpp.

◆ do_designated_initializer()

exprt::operandst::const_iterator c_typecheck_baset::do_designated_initializer ( exprt result,
designatort designator,
const exprt initializer_list,
exprt::operandst::const_iterator  init_it,
bool  force_constant 
)
protectedvirtual

Definition at line 353 of file c_typecheck_initializer.cpp.

◆ do_initializer() [1/2]

void c_typecheck_baset::do_initializer ( exprt initializer,
const typet type,
bool  force_constant 
)
protectedvirtual

Definition at line 26 of file c_typecheck_initializer.cpp.

◆ do_initializer() [2/2]

void c_typecheck_baset::do_initializer ( symbolt symbol)
protectedvirtual

Definition at line 217 of file c_typecheck_initializer.cpp.

◆ do_initializer_list()

exprt c_typecheck_baset::do_initializer_list ( const exprt value,
const typet type,
bool  force_constant 
)
protectedvirtual

Definition at line 830 of file c_typecheck_initializer.cpp.

◆ do_initializer_rec()

exprt c_typecheck_baset::do_initializer_rec ( const exprt value,
const typet type,
bool  force_constant 
)
protectedvirtual

initialize something of type ‘type’ with given value ‘value’

Definition at line 54 of file c_typecheck_initializer.cpp.

◆ do_special_functions()

exprt c_typecheck_baset::do_special_functions ( side_effect_expr_function_callt expr)
protectedvirtual

Definition at line 2072 of file c_typecheck_expr.cpp.

◆ enum_constant_type()

typet c_typecheck_baset::enum_constant_type ( const mp_integer min,
const mp_integer max 
) const
protected

Definition at line 1044 of file c_typecheck_type.cpp.

◆ enum_underlying_type()

typet c_typecheck_baset::enum_underlying_type ( const mp_integer min,
const mp_integer max,
bool  is_packed 
) const
protected

Definition at line 1076 of file c_typecheck_type.cpp.

◆ gcc_types_compatible_p()

bool c_typecheck_baset::gcc_types_compatible_p ( const typet type1,
const typet type2 
)
protectedvirtual

Definition at line 88 of file c_typecheck_expr.cpp.

◆ gcc_vector_types_compatible()

bool c_typecheck_baset::gcc_vector_types_compatible ( const vector_typet type0,
const vector_typet type1 
)
protected

Definition at line 2947 of file c_typecheck_expr.cpp.

◆ implicit_typecast()

void c_typecheck_baset::implicit_typecast ( exprt expr,
const typet type 
)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 13 of file c_typecheck_typecast.cpp.

◆ implicit_typecast_arithmetic() [1/2]

void c_typecheck_baset::implicit_typecast_arithmetic ( exprt expr)
protectedvirtual

Definition at line 61 of file c_typecheck_typecast.cpp.

◆ implicit_typecast_arithmetic() [2/2]

void c_typecheck_baset::implicit_typecast_arithmetic ( exprt expr1,
exprt expr2 
)
protectedvirtual

Definition at line 53 of file c_typecheck_typecast.cpp.

◆ implicit_typecast_bool()

virtual void c_typecheck_baset::implicit_typecast_bool ( exprt expr)
inlineprotectedvirtual

Definition at line 117 of file c_typecheck_base.h.

◆ increment_designator()

void c_typecheck_baset::increment_designator ( designatort designator)
protected

Definition at line 638 of file c_typecheck_initializer.cpp.

◆ is_complete_type()

bool c_typecheck_baset::is_complete_type ( const typet type) const
protectedvirtual

Definition at line 342 of file c_typecheck_code.cpp.

◆ is_numeric_type()

static bool c_typecheck_baset::is_numeric_type ( const typet src)
inlinestaticprotected

Definition at line 257 of file c_typecheck_base.h.

◆ make_already_typechecked()

void c_typecheck_baset::make_already_typechecked ( typet dest)
inlineprotected

Definition at line 228 of file c_typecheck_base.h.

◆ make_constant()

void c_typecheck_baset::make_constant ( exprt expr)
protectedvirtual

Definition at line 3482 of file c_typecheck_expr.cpp.

◆ make_constant_index()

void c_typecheck_baset::make_constant_index ( exprt expr)
protectedvirtual

Definition at line 3503 of file c_typecheck_expr.cpp.

◆ make_designator()

designatort c_typecheck_baset::make_designator ( const typet type,
const exprt src 
)
protected

Definition at line 686 of file c_typecheck_initializer.cpp.

◆ make_index_type()

void c_typecheck_baset::make_index_type ( exprt expr)
protectedvirtual

Definition at line 1255 of file c_typecheck_expr.cpp.

◆ move_symbol() [1/2]

void c_typecheck_baset::move_symbol ( symbolt symbol,
symbolt *&  new_symbol 
)
protected

Definition at line 33 of file c_typecheck_base.cpp.

◆ move_symbol() [2/2]

void c_typecheck_baset::move_symbol ( symbolt symbol)
inlineprotected

Definition at line 243 of file c_typecheck_base.h.

◆ start_typecheck_code()

void c_typecheck_baset::start_typecheck_code ( )
protectedvirtual

Definition at line 19 of file c_typecheck_code.cpp.

◆ to_string() [1/2]

std::string c_typecheck_baset::to_string ( const exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 23 of file c_typecheck_base.cpp.

◆ to_string() [2/2]

std::string c_typecheck_baset::to_string ( const typet type)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 28 of file c_typecheck_base.cpp.

◆ typecheck()

virtual void c_typecheck_baset::typecheck ( )
pure virtual

Implements typecheckt.

Implemented in cpp_typecheckt, and ansi_c_typecheckt.

◆ typecheck_arithmetic_pointer()

void c_typecheck_baset::typecheck_arithmetic_pointer ( const exprt expr)
protectedvirtual

Definition at line 3162 of file c_typecheck_expr.cpp.

◆ typecheck_array_type()

void c_typecheck_baset::typecheck_array_type ( array_typet type)
protectedvirtual

Definition at line 508 of file c_typecheck_type.cpp.

◆ typecheck_asm()

void c_typecheck_baset::typecheck_asm ( codet code)
protectedvirtual

Definition at line 135 of file c_typecheck_code.cpp.

◆ typecheck_assign()

void c_typecheck_baset::typecheck_assign ( codet expr)
protectedvirtual

Definition at line 168 of file c_typecheck_code.cpp.

◆ typecheck_block()

void c_typecheck_baset::typecheck_block ( code_blockt code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 184 of file c_typecheck_code.cpp.

◆ typecheck_break()

void c_typecheck_baset::typecheck_break ( codet code)
protectedvirtual

Definition at line 203 of file c_typecheck_code.cpp.

◆ typecheck_c_bit_field_type()

void c_typecheck_baset::typecheck_c_bit_field_type ( c_bit_field_typet type)
protectedvirtual

Definition at line 1376 of file c_typecheck_type.cpp.

◆ typecheck_c_enum_tag_type()

void c_typecheck_baset::typecheck_c_enum_tag_type ( c_enum_tag_typet type)
protectedvirtual

Definition at line 1317 of file c_typecheck_type.cpp.

◆ typecheck_c_enum_type()

void c_typecheck_baset::typecheck_c_enum_type ( typet type)
protectedvirtual

Definition at line 1134 of file c_typecheck_type.cpp.

◆ typecheck_code()

void c_typecheck_baset::typecheck_code ( codet code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 24 of file c_typecheck_code.cpp.

◆ typecheck_code_type()

void c_typecheck_baset::typecheck_code_type ( code_typet type)
protectedvirtual

Definition at line 409 of file c_typecheck_type.cpp.

◆ typecheck_compound_body()

void c_typecheck_baset::typecheck_compound_body ( struct_union_typet type)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 867 of file c_typecheck_type.cpp.

◆ typecheck_compound_type()

void c_typecheck_baset::typecheck_compound_type ( struct_union_typet type)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 739 of file c_typecheck_type.cpp.

◆ typecheck_continue()

void c_typecheck_baset::typecheck_continue ( codet code)
protectedvirtual

Definition at line 213 of file c_typecheck_code.cpp.

◆ typecheck_custom_type()

void c_typecheck_baset::typecheck_custom_type ( typet type)
protectedvirtual

Definition at line 307 of file c_typecheck_type.cpp.

◆ typecheck_decl()

void c_typecheck_baset::typecheck_decl ( codet code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 223 of file c_typecheck_code.cpp.

◆ typecheck_declaration()

void c_typecheck_baset::typecheck_declaration ( ansi_c_declarationt declaration)
protected

Definition at line 654 of file c_typecheck_base.cpp.

◆ typecheck_dowhile()

void c_typecheck_baset::typecheck_dowhile ( code_dowhilet code)
protectedvirtual

Definition at line 749 of file c_typecheck_code.cpp.

◆ typecheck_expr()

void c_typecheck_baset::typecheck_expr ( exprt expr)
virtual

Reimplemented in cpp_typecheckt.

Definition at line 36 of file c_typecheck_expr.cpp.

◆ typecheck_expr_address_of()

void c_typecheck_baset::typecheck_expr_address_of ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1732 of file c_typecheck_expr.cpp.

◆ typecheck_expr_alignof()

void c_typecheck_baset::typecheck_expr_alignof ( exprt expr)
protectedvirtual

Definition at line 1039 of file c_typecheck_expr.cpp.

◆ typecheck_expr_binary_arithmetic()

void c_typecheck_baset::typecheck_expr_binary_arithmetic ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 2974 of file c_typecheck_expr.cpp.

◆ typecheck_expr_binary_boolean()

void c_typecheck_baset::typecheck_expr_binary_boolean ( exprt expr)
protectedvirtual

Definition at line 3267 of file c_typecheck_expr.cpp.

◆ typecheck_expr_builtin_offsetof()

void c_typecheck_baset::typecheck_expr_builtin_offsetof ( exprt expr)
protectedvirtual

Definition at line 562 of file c_typecheck_expr.cpp.

◆ typecheck_expr_builtin_va_arg()

void c_typecheck_baset::typecheck_expr_builtin_va_arg ( exprt expr)
protectedvirtual

Definition at line 504 of file c_typecheck_expr.cpp.

◆ typecheck_expr_comma()

void c_typecheck_baset::typecheck_expr_comma ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 488 of file c_typecheck_expr.cpp.

◆ typecheck_expr_constant()

void c_typecheck_baset::typecheck_expr_constant ( exprt expr)
protectedvirtual

Definition at line 2881 of file c_typecheck_expr.cpp.

◆ typecheck_expr_cw_va_arg_typeof()

void c_typecheck_baset::typecheck_expr_cw_va_arg_typeof ( exprt expr)
protectedvirtual

Definition at line 545 of file c_typecheck_expr.cpp.

◆ typecheck_expr_dereference()

void c_typecheck_baset::typecheck_expr_dereference ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1809 of file c_typecheck_expr.cpp.

◆ typecheck_expr_function_identifier()

void c_typecheck_baset::typecheck_expr_function_identifier ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1852 of file c_typecheck_expr.cpp.

◆ typecheck_expr_index()

void c_typecheck_baset::typecheck_expr_index ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1260 of file c_typecheck_expr.cpp.

◆ typecheck_expr_main()

void c_typecheck_baset::typecheck_expr_main ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 165 of file c_typecheck_expr.cpp.

◆ typecheck_expr_member()

void c_typecheck_baset::typecheck_expr_member ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1513 of file c_typecheck_expr.cpp.

◆ typecheck_expr_operands()

void c_typecheck_baset::typecheck_expr_operands ( exprt expr)
protectedvirtual

Definition at line 717 of file c_typecheck_expr.cpp.

◆ typecheck_expr_pointer_arithmetic()

void c_typecheck_baset::typecheck_expr_pointer_arithmetic ( exprt expr)
protectedvirtual

Definition at line 3177 of file c_typecheck_expr.cpp.

◆ typecheck_expr_ptrmember()

void c_typecheck_baset::typecheck_expr_ptrmember ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1473 of file c_typecheck_expr.cpp.

◆ typecheck_expr_rel()

void c_typecheck_baset::typecheck_expr_rel ( binary_relation_exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1341 of file c_typecheck_expr.cpp.

◆ typecheck_expr_rel_vector()

void c_typecheck_baset::typecheck_expr_rel_vector ( binary_relation_exprt expr)
protectedvirtual

Definition at line 1447 of file c_typecheck_expr.cpp.

◆ typecheck_expr_shifts()

void c_typecheck_baset::typecheck_expr_shifts ( shift_exprt expr)
protectedvirtual

Definition at line 3093 of file c_typecheck_expr.cpp.

◆ typecheck_expr_side_effect()

void c_typecheck_baset::typecheck_expr_side_effect ( side_effect_exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1863 of file c_typecheck_expr.cpp.

◆ typecheck_expr_sizeof()

void c_typecheck_baset::typecheck_expr_sizeof ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 960 of file c_typecheck_expr.cpp.

◆ typecheck_expr_symbol()

void c_typecheck_baset::typecheck_expr_symbol ( exprt expr)
protectedvirtual

Definition at line 787 of file c_typecheck_expr.cpp.

◆ typecheck_expr_trinary()

void c_typecheck_baset::typecheck_expr_trinary ( if_exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1609 of file c_typecheck_expr.cpp.

◆ typecheck_expr_typecast()

void c_typecheck_baset::typecheck_expr_typecast ( exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1061 of file c_typecheck_expr.cpp.

◆ typecheck_expr_unary_arithmetic()

void c_typecheck_baset::typecheck_expr_unary_arithmetic ( exprt expr)
protectedvirtual

Definition at line 2886 of file c_typecheck_expr.cpp.

◆ typecheck_expr_unary_boolean()

void c_typecheck_baset::typecheck_expr_unary_boolean ( exprt expr)
protectedvirtual

Definition at line 2925 of file c_typecheck_expr.cpp.

◆ typecheck_expression()

void c_typecheck_baset::typecheck_expression ( codet code)
protectedvirtual

Definition at line 369 of file c_typecheck_code.cpp.

◆ typecheck_for()

void c_typecheck_baset::typecheck_for ( codet code)
protectedvirtual

Definition at line 383 of file c_typecheck_code.cpp.

◆ typecheck_function_body()

void c_typecheck_baset::typecheck_function_body ( symbolt symbol)
protected

Definition at line 516 of file c_typecheck_base.cpp.

◆ typecheck_function_call_arguments()

void c_typecheck_baset::typecheck_function_call_arguments ( side_effect_expr_function_callt expr)
protectedvirtual

Typecheck the parameters in a function call expression, and where necessary, make implicit casts around parameters explicit.

Reimplemented in cpp_typecheckt.

Definition at line 2799 of file c_typecheck_expr.cpp.

◆ typecheck_gcc_computed_goto()

void c_typecheck_baset::typecheck_gcc_computed_goto ( codet code)
protectedvirtual

Definition at line 557 of file c_typecheck_code.cpp.

◆ typecheck_gcc_local_label()

void c_typecheck_baset::typecheck_gcc_local_label ( codet code)
protectedvirtual

Definition at line 545 of file c_typecheck_code.cpp.

◆ typecheck_gcc_switch_case_range()

void c_typecheck_baset::typecheck_gcc_switch_case_range ( codet code)
protectedvirtual

Definition at line 518 of file c_typecheck_code.cpp.

◆ typecheck_goto()

void c_typecheck_baset::typecheck_goto ( code_gotot code)
protectedvirtual

Definition at line 551 of file c_typecheck_code.cpp.

◆ typecheck_ifthenelse()

void c_typecheck_baset::typecheck_ifthenelse ( code_ifthenelset code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 582 of file c_typecheck_code.cpp.

◆ typecheck_label()

void c_typecheck_baset::typecheck_label ( code_labelt code)
protectedvirtual

Definition at line 474 of file c_typecheck_code.cpp.

◆ typecheck_new_symbol()

void c_typecheck_baset::typecheck_new_symbol ( symbolt symbol)
protected

Definition at line 141 of file c_typecheck_base.cpp.

◆ typecheck_redefinition_non_type()

void c_typecheck_baset::typecheck_redefinition_non_type ( symbolt old_symbol,
symbolt new_symbol 
)
protected

Definition at line 254 of file c_typecheck_base.cpp.

◆ typecheck_redefinition_type()

void c_typecheck_baset::typecheck_redefinition_type ( symbolt old_symbol,
symbolt new_symbol 
)
protected

Definition at line 171 of file c_typecheck_base.cpp.

◆ typecheck_return()

void c_typecheck_baset::typecheck_return ( codet code)
protectedvirtual

Definition at line 639 of file c_typecheck_code.cpp.

◆ typecheck_side_effect_assignment()

void c_typecheck_baset::typecheck_side_effect_assignment ( side_effect_exprt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 3288 of file c_typecheck_expr.cpp.

◆ typecheck_side_effect_function_call()

void c_typecheck_baset::typecheck_side_effect_function_call ( side_effect_expr_function_callt expr)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 1954 of file c_typecheck_expr.cpp.

◆ typecheck_side_effect_gcc_conditional_expression()

void c_typecheck_baset::typecheck_side_effect_gcc_conditional_expression ( side_effect_exprt expr)
protectedvirtual

Definition at line 1701 of file c_typecheck_expr.cpp.

◆ typecheck_side_effect_statement_expression()

void c_typecheck_baset::typecheck_side_effect_statement_expression ( side_effect_exprt expr)
protectedvirtual

Definition at line 891 of file c_typecheck_expr.cpp.

◆ typecheck_spec_expr()

void c_typecheck_baset::typecheck_spec_expr ( codet code,
const irep_idt spec 
)
protectedvirtual

Definition at line 782 of file c_typecheck_code.cpp.

◆ typecheck_start_thread()

void c_typecheck_baset::typecheck_start_thread ( codet code)
protectedvirtual

Definition at line 627 of file c_typecheck_code.cpp.

◆ typecheck_switch()

void c_typecheck_baset::typecheck_switch ( code_switcht code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 685 of file c_typecheck_code.cpp.

◆ typecheck_switch_case()

void c_typecheck_baset::typecheck_switch_case ( code_switch_caset code)
protectedvirtual

Definition at line 482 of file c_typecheck_code.cpp.

◆ typecheck_symbol()

void c_typecheck_baset::typecheck_symbol ( symbolt symbol)
protected

Definition at line 47 of file c_typecheck_base.cpp.

◆ typecheck_type()

void c_typecheck_baset::typecheck_type ( typet type)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 29 of file c_typecheck_type.cpp.

◆ typecheck_typedef_type()

void c_typecheck_baset::typecheck_typedef_type ( typet type)
protectedvirtual

Definition at line 1493 of file c_typecheck_type.cpp.

◆ typecheck_typeof_type()

void c_typecheck_baset::typecheck_typeof_type ( typet type)
protectedvirtual

Definition at line 1456 of file c_typecheck_type.cpp.

◆ typecheck_vector_type()

void c_typecheck_baset::typecheck_vector_type ( vector_typet type)
protectedvirtual

Definition at line 658 of file c_typecheck_type.cpp.

◆ typecheck_while()

void c_typecheck_baset::typecheck_while ( code_whilet code)
protectedvirtual

Reimplemented in cpp_typecheckt.

Definition at line 716 of file c_typecheck_code.cpp.

Member Data Documentation

◆ asm_label_map

asm_label_mapt c_typecheck_baset::asm_label_map
protected

Definition at line 273 of file c_typecheck_base.h.

◆ break_is_allowed

bool c_typecheck_baset::break_is_allowed
protected

Definition at line 148 of file c_typecheck_base.h.

◆ case_is_allowed

bool c_typecheck_baset::case_is_allowed
protected

Definition at line 150 of file c_typecheck_base.h.

◆ clean_code

std::list<codet> c_typecheck_baset::clean_code
protected

Definition at line 236 of file c_typecheck_base.h.

◆ continue_is_allowed

bool c_typecheck_baset::continue_is_allowed
protected

Definition at line 149 of file c_typecheck_base.h.

◆ current_symbol

symbolt c_typecheck_baset::current_symbol
protected

Definition at line 70 of file c_typecheck_base.h.

◆ labels_defined

std::map<irep_idt, source_locationt> c_typecheck_baset::labels_defined
protected

Definition at line 155 of file c_typecheck_base.h.

◆ labels_used

std::map<irep_idt, source_locationt> c_typecheck_baset::labels_used
protected

Definition at line 155 of file c_typecheck_base.h.

◆ mode

const irep_idt c_typecheck_baset::mode
protected

Definition at line 69 of file c_typecheck_base.h.

◆ module

const irep_idt c_typecheck_baset::module
protected

Definition at line 68 of file c_typecheck_base.h.

◆ parameter_map

id_type_mapt c_typecheck_baset::parameter_map
protected

Definition at line 73 of file c_typecheck_base.h.

◆ return_type

typet c_typecheck_baset::return_type
protected

Definition at line 152 of file c_typecheck_base.h.

◆ switch_op_type

typet c_typecheck_baset::switch_op_type
protected

Definition at line 151 of file c_typecheck_base.h.

◆ symbol_table

symbol_tablet& c_typecheck_baset::symbol_table
protected

Definition at line 67 of file c_typecheck_base.h.


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