cprover
Loading...
Searching...
No Matches
linkingt Class Reference

#include <linking_class.h>

Collaboration diagram for linkingt:

Classes

struct  adjust_type_infot

Public Member Functions

 linkingt (symbol_table_baset &_main_symbol_table, message_handlert &_message_handler)
bool link (const symbol_table_baset &src_symbol_table)
 Merges the symbol table src_symbol_table into main_symbol_table, renaming symbols from src_symbol_table when necessary.

Public Attributes

rename_symbolt rename_main_symbol
rename_symbolt rename_new_symbol
casting_replace_symbolt object_type_updates

Protected Types

enum  renamingt { NO_RENAMING , RENAME_OLD , RENAME_NEW }

Protected Member Functions

renamingt needs_renaming_type (const symbolt &old_symbol, const symbolt &new_symbol)
renamingt needs_renaming_non_type (const symbolt &old_symbol, const symbolt &new_symbol)
renamingt needs_renaming (const symbolt &old_symbol, const symbolt &new_symbol)
std::unordered_map< irep_idt, irep_idtrename_symbols (const symbol_table_baset &, const std::unordered_set< irep_idt > &needs_to_be_renamed)
void copy_symbols (const symbol_table_baset &, const std::unordered_map< irep_idt, irep_idt > &)
void duplicate_non_type_symbol (symbolt &old_symbol, symbolt &new_symbol)
void duplicate_code_symbol (symbolt &old_symbol, symbolt &new_symbol)
void duplicate_object_symbol (symbolt &old_symbol, symbolt &new_symbol)
bool adjust_object_type (const symbolt &old_symbol, const symbolt &new_symbol, bool &set_to_new)
bool adjust_object_type_rec (const typet &type1, const typet &type2, adjust_type_infot &info)
void duplicate_type_symbol (symbolt &old_symbol, const symbolt &new_symbol)
irep_idt rename (const symbol_table_baset &, const irep_idt &)

Protected Attributes

symbol_table_basetmain_symbol_table
namespacet ns
message_handlertmessage_handler
std::unordered_set< irep_idtrenamed_ids

Detailed Description

Definition at line 26 of file linking_class.h.

Member Enumeration Documentation

◆ renamingt

enum linkingt::renamingt
protected
Enumerator
NO_RENAMING 
RENAME_OLD 
RENAME_NEW 

Definition at line 47 of file linking_class.h.

Constructor & Destructor Documentation

◆ linkingt()

linkingt::linkingt ( symbol_table_baset & _main_symbol_table,
message_handlert & _message_handler )
inline

Definition at line 29 of file linking_class.h.

Member Function Documentation

◆ adjust_object_type()

bool linkingt::adjust_object_type ( const symbolt & old_symbol,
const symbolt & new_symbol,
bool & set_to_new )
protected

Definition at line 596 of file linking.cpp.

◆ adjust_object_type_rec()

bool linkingt::adjust_object_type_rec ( const typet & type1,
const typet & type2,
adjust_type_infot & info )
protected

Definition at line 401 of file linking.cpp.

◆ copy_symbols()

void linkingt::copy_symbols ( const symbol_table_baset & src_symbol_table,
const std::unordered_map< irep_idt, irep_idt > & new_identifiers )
protected

Definition at line 987 of file linking.cpp.

◆ duplicate_code_symbol()

void linkingt::duplicate_code_symbol ( symbolt & old_symbol,
symbolt & new_symbol )
protected

Definition at line 82 of file linking.cpp.

◆ duplicate_non_type_symbol()

void linkingt::duplicate_non_type_symbol ( symbolt & old_symbol,
symbolt & new_symbol )
protected

Definition at line 701 of file linking.cpp.

◆ duplicate_object_symbol()

void linkingt::duplicate_object_symbol ( symbolt & old_symbol,
symbolt & new_symbol )
protected

Definition at line 611 of file linking.cpp.

◆ duplicate_type_symbol()

void linkingt::duplicate_type_symbol ( symbolt & old_symbol,
const symbolt & new_symbol )
protected

Definition at line 744 of file linking.cpp.

◆ link()

bool linkingt::link ( const symbol_table_baset & src_symbol_table)

Merges the symbol table src_symbol_table into main_symbol_table, renaming symbols from src_symbol_table when necessary.

Returns
True, iff linking failed with unresolvable conflicts.

Definition at line 1053 of file linking.cpp.

◆ needs_renaming()

renamingt linkingt::needs_renaming ( const symbolt & old_symbol,
const symbolt & new_symbol )
inlineprotected

Definition at line 60 of file linking_class.h.

◆ needs_renaming_non_type()

linkingt::renamingt linkingt::needs_renaming_non_type ( const symbolt & old_symbol,
const symbolt & new_symbol )
protected

Definition at line 67 of file linking.cpp.

◆ needs_renaming_type()

linkingt::renamingt linkingt::needs_renaming_type ( const symbolt & old_symbol,
const symbolt & new_symbol )
protected

Definition at line 834 of file linking.cpp.

◆ rename()

irep_idt linkingt::rename ( const symbol_table_baset & src_symbol_table,
const irep_idt & id )
protected

Definition at line 43 of file linking.cpp.

◆ rename_symbols()

std::unordered_map< irep_idt, irep_idt > linkingt::rename_symbols ( const symbol_table_baset & src_symbol_table,
const std::unordered_set< irep_idt > & needs_to_be_renamed )
protected

Definition at line 952 of file linking.cpp.

Member Data Documentation

◆ main_symbol_table

symbol_table_baset& linkingt::main_symbol_table
protected

Definition at line 119 of file linking_class.h.

◆ message_handler

message_handlert& linkingt::message_handler
protected

Definition at line 121 of file linking_class.h.

◆ ns

namespacet linkingt::ns
protected

Definition at line 120 of file linking_class.h.

◆ object_type_updates

casting_replace_symbolt linkingt::object_type_updates

Definition at line 44 of file linking_class.h.

◆ rename_main_symbol

rename_symbolt linkingt::rename_main_symbol

Definition at line 43 of file linking_class.h.

◆ rename_new_symbol

rename_symbolt linkingt::rename_new_symbol

Definition at line 43 of file linking_class.h.

◆ renamed_ids

std::unordered_set<irep_idt> linkingt::renamed_ids
protected

Definition at line 126 of file linking_class.h.


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