14 #ifndef CPROVER_GOTO_CC_COMPILE_H
15 #define CPROVER_GOTO_CC_COMPILE_H
68 std::optional<symbol_tablet>
compile();
69 bool link(std::optional<symbol_tablet> &&symbol_table);
71 std::optional<symbol_tablet>
parse_source(
const std::string &);
81 const std::string &file_name,
95 std::size_t> &cprover_macros)
const
99 cprover_macros.insert({pair.first,
123 const std::string &file_name,
const parameterst & parameters() const
@ COMPILE_LINK_EXECUTABLE
void add_compiler_specific_defines() const
std::optional< symbol_tablet > compile()
Parses source files and writes object files, or keeps the symbols in the symbol_table if not compilin...
bool parse_stdin(languaget &)
parses a source file (low-level parsing)
bool parse(const std::string &filename, language_filest &)
parses a source file (low-level parsing)
std::string working_directory
std::list< std::string > tmp_dirs
std::string override_language
std::string output_file_object
bool write_bin_object_file(const std::string &file_name, const goto_modelt &src_goto_model)
bool add_input_file(const std::string &)
puts input file names into a list and does preprocessing for libraries.
std::list< std::string > libraries
std::list< irep_idt > seen_modes
std::string output_directory_object
void cprover_macro_arities(std::map< irep_idt, std::size_t > &cprover_macros) const
__CPROVER_... macros written to object files and their arities
std::list< std::string > object_files
bool link(std::optional< symbol_tablet > &&symbol_table)
parses object files and links them
bool doit()
reads and source and object files, compiles and links them into goto program objects.
std::list< std::string > source_files
~compilet()
cleans up temporary files
bool wrote_object_files() const
Has this compiler written any object files?
bool add_written_cprover_symbols(const symbol_tablet &symbol_table)
std::string object_file_extension
compilet(cmdlinet &_cmdline, message_handlert &mh, bool Werror)
constructor
const bool keep_file_local
Whether to keep implementations of file-local symbols.
static std::size_t function_body_count(const goto_functionst &)
void convert_symbols(goto_modelt &)
std::map< irep_idt, symbolt > written_macros
bool add_files_from_archive(const std::string &file_name, bool thin_archive)
extracts goto binaries from AR archive and add them as input files.
bool find_library(const std::string &)
tries to find a library object file that matches the given library name.
std::optional< symbol_tablet > parse_source(const std::string &)
Parses and type checks a source file located at file_name.
static bool write_bin_object_file(const std::string &file_name, const goto_modelt &src_goto_model, bool validate_goto_model, message_handlert &message_handler)
Writes the goto functions of src_goto_model to a binary format object file.
const std::string file_local_mangle_suffix
String to include in all mangled names.
std::list< std::string > library_paths
std::string output_file_executable
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
A collection of goto functions.
Class that provides messages with a built-in verbosity 'level'.
message_handlert & get_message_handler()
#define PRECONDITION(CONDITION)
const code_typet & to_code_type(const typet &type)
Cast a typet to a code_typet.