30 for(
const auto &symbol_pair : symbol_table.
symbols)
35 const symbolt &sym = symbol_pair.second;
50 flags = (flags << 1) | static_cast<int>(sym.
is_weak);
51 flags = (flags << 1) | static_cast<int>(sym.
is_type);
52 flags = (flags << 1) | static_cast<int>(sym.
is_property);
53 flags = (flags << 1) | static_cast<int>(sym.
is_macro);
54 flags = (flags << 1) | static_cast<int>(sym.
is_exported);
55 flags = (flags << 1) | static_cast<int>(sym.
is_input);
56 flags = (flags << 1) | static_cast<int>(sym.
is_output);
57 flags = (flags << 1) | static_cast<int>(sym.
is_state_var);
58 flags = (flags << 1) | static_cast<int>(sym.
is_parameter);
59 flags = (flags << 1) | static_cast<int>(sym.
is_auxiliary);
60 flags = (flags << 1) | static_cast<int>(
false);
61 flags = (flags << 1) | static_cast<int>(sym.
is_lvalue);
65 flags = (flags << 1) | static_cast<int>(sym.
is_extern);
66 flags = (flags << 1) | static_cast<int>(sym.
is_volatile);
75 const std::pair<const irep_idt, goto_functiont> &fct)
79 for(
const auto &instruction : fct.second.body.instructions)
85 const auto condition =
86 instruction.has_condition() ? instruction.condition() :
true_exprt();
93 for(
const auto &t_it : instruction.targets)
98 for(
const auto &l_it : instruction.labels)
112 if(gf_entry.second.body_available())
120 if(!fct.second.body_available())
126 const auto function_name =
id2string(fct.first);
164 out << char(0x7f) <<
"GBF";
188 const std::string &filename,
197 message.
error() <<
"Failed to open '" << filename <<
"'";
A collection of goto functions.
function_mapt function_map
symbol_tablet symbol_table
Symbol table.
goto_functionst goto_functions
GOTO functions.
Thrown when users pass incorrect command line arguments, for example passing no files to analysis or ...
void write_string_ref(std::ostream &, const irep_idt &)
Output a string and maintain a reference to it.
const irept & reference_convert(std::istream &)
Class that provides messages with a built-in verbosity 'level'.
The symbol table base class interface.
const symbolst & symbols
Read-only field, used to look up symbols given their names.
irep_idt base_name
Base (non-scoped) name.
irep_idt module
Name of module the symbol belongs to.
source_locationt location
Source code location of definition of symbol.
typet type
Type of symbol.
irep_idt name
The unique identifier.
irep_idt pretty_name
Language-specific display name.
exprt value
Initial value of symbol.
irep_idt mode
Language mode.
The Boolean constant true.
const std::string & id2string(const irep_idt &d)
void write_gb_string(std::ostream &out, const std::string &s)
outputs the string and then a zero byte.
void write_gb_word(std::ostream &out, std::size_t u)
Write 7 bits of u each time, least-significant byte first, until we have zero.
binary irep conversions with hashing
static std::string binary(const constant_exprt &src)
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
static void write_instructions_binary(std::ostream &out, irep_serializationt &irepconverter, const std::pair< const irep_idt, goto_functiont > &fct)
static void write_goto_functions_binary(std::ostream &out, const goto_functionst &goto_functions, irep_serializationt &irepconverter)
Writes the functions to file, but only those with non-empty body.
static void write_goto_binary(std::ostream &out, const symbol_table_baset &symbol_table, const goto_functionst &goto_functions, irep_serializationt &irepconverter)
Writes a goto program to disc, using goto binary format.
static void write_symbol_table_binary(std::ostream &out, const symbol_table_baset &symbol_table, irep_serializationt &irepconverter)
Writes the symbol table to file.
#define GOTO_BINARY_VERSION