ESBMC
Efficient SMT-based Context-Bounded Model Checker
Loading...
Searching...
No Matches
c_preprocess.cpp File Reference
#include <clang-c-frontend/c_preprocess.h>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <util/config/config.h>
#include <util/base/i2string.h>
#include <cpp/iface.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
Include dependency graph for c_preprocess.cpp:

Functions

int configure_and_run_cpp (const char *out_file_buf, const std::string &path, const char **platformdefs)
void setup_cpp_defs (const char **defs)
bool c_preprocess (const std::string &path, std::ostream &outstream)

Variables

static const char * cpp_defines_16 []
static const char * cpp_defines_32 []
static const char * cpp_defines_64 []
static const char * cpp_normal_defs []
static const char * cpp_linux_defs []
static const char * cpp_ansic_defs []

Function Documentation

◆ c_preprocess()

bool c_preprocess ( const std::string & path,
std::ostream & outstream )

◆ configure_and_run_cpp()

int configure_and_run_cpp ( const char * out_file_buf,
const std::string & path,
const char ** platformdefs )

◆ setup_cpp_defs()

void setup_cpp_defs ( const char ** defs)

Variable Documentation

◆ cpp_ansic_defs

const char* cpp_ansic_defs[]
static
Initial value:
= {
"__STDC_VERSION__=199901L",
"__STDC_IEC_559__=1",
"__STDC_IEC_559_COMPLEX__=1",
"__STDC__",
nullptr}

◆ cpp_defines_16

const char* cpp_defines_16[]
static
Initial value:
= {
"__INT_MAX__=32767",
"__CHAR_BIT__=8",
"__WCHAR_MAX__=32767",
"__SCHAR_MAX__=127",
"__SHRT_MAX__=32767",
"__LONG_LONG_MAX__=2147483647L",
"__LONG_MAX__=2147483647",
"__FLT_MIN__=1.17549435e-38F",
"__FLT_MAX__=3.40282347e+38F",
"__LDBL_MIN__=3.36210314311209350626e-4932L",
"__LDBL_MAX__=1.18973149535723176502e+4932L",
"__DBL_MIN__=2.2250738585072014e-308",
"__DBL_MAX__=1.7976931348623157e+308",
"__SIZE_TYPE__=unsigned int",
"__PTRDIFF_TYPE__=int",
"__WCHAR_TYPE__=int",
"__WINT_TYPE__=int",
"__INTMAX_TYPE__=long long int",
"__UINTMAX_TYPE__=long long unsigned int",
"__WORDSIZE=16",
nullptr}

◆ cpp_defines_32

const char* cpp_defines_32[]
static
Initial value:
= {
"__INT_MAX__=2147483647",
"__CHAR_BIT__=8",
"__WCHAR_MAX__=2147483647",
"__SCHAR_MAX__=127",
"__SHRT_MAX__=32767",
"__LONG_LONG_MAX__=9223372036854775807LL",
"__LONG_MAX__=2147483647L",
"__FLT_MIN__=1.17549435e-38F",
"__FLT_MAX__=3.40282347e+38F",
"__LDBL_MIN__=3.36210314311209350626e-4932L",
"__LDBL_MAX__=1.18973149535723176502e+4932L",
"__DBL_MIN__=2.2250738585072014e-308",
"__DBL_MAX__=1.7976931348623157e+308",
"__SIZE_TYPE__=long unsigned int",
"__PTRDIFF_TYPE__=int",
"__WCHAR_TYPE__=int",
"__WINT_TYPE__=int",
"__INTMAX_TYPE__=long long int",
"__UINTMAX_TYPE__=long long unsigned int",
"__WORDSIZE=32",
"_X86_",
"__i386__",
nullptr}

◆ cpp_defines_64

const char* cpp_defines_64[]
static
Initial value:
= {
"__INT_MAX__=2147483647",
"__CHAR_BIT__=8",
"__WCHAR_MAX__=2147483647",
"__SCHAR_MAX__=127",
"__SHRT_MAX__=32767",
"__LONG_LONG_MAX__=9223372036854775807LL",
"__LONG_MAX__=9223372036854775807L",
"__FLT_MIN__=1.17549435e-38F",
"__FLT_MAX__=3.40282347e+38F",
"__LDBL_MIN__=3.36210314311209350626e-4932L",
"__LDBL_MAX__=1.18973149535723176502e+4932L",
"__DBL_MIN__=2.2250738585072014e-308",
"__DBL_MAX__=1.7976931348623157e+308",
"__x86_64=1",
"__LP64__=1",
"__x86_64__=1",
"_LP64=1",
"__SIZE_TYPE__=long unsigned int",
"__PTRDIFF_TYPE__=int",
"__WCHAR_TYPE__=int",
"__WINT_TYPE__=int",
"__INTMAX_TYPE__=long long int",
"__UINTMAX_TYPE__=long long unsigned int",
"__WORDSIZE=64",
"__x86_64",
"__x86_64__",
nullptr}

◆ cpp_linux_defs

const char* cpp_linux_defs[]
static
Initial value:
= {
"i386",
"__i386",
"__i386__",
"linux",
"__linux",
"__linux__",
"__gnu_linux__",
"unix",
"__unix",
"__unix__",
"__null=0",
"__restrict__=/**/",
"__restrict=/**/",
nullptr}

◆ cpp_normal_defs

const char* cpp_normal_defs[]
static
Initial value:
= {
"__ESBMC__",
"__STRICT_ANSI__=1",
"_POSIX_SOURCE=1",
"_POSIX_C_SOURCE=200112L",
"__GNUC__",
"__VERIFIER_ASSUME=__ESBMC_assume",
"__VERIFIER_assume=__ESBMC_assume",
"__VERIFIER_atomic_begin=__ESBMC_atomic_begin",
"__VERIFIER_atomic_end=__ESBMC_atomic_end",
nullptr}