22 std::string
c2cpp(
const std::string &s)
26 result.reserve(s.size());
28 for(std::size_t i=0; i<s.size(); i++)
32 if(ch==
'_' && std::string(s, i, 5)==
"_Bool")
34 result.append(
"bool");
47 out <<
"#line 1 \"<built-in-additions>\"" <<
'\n';
50 out <<
"namespace __CPROVER { }" <<
'\n';
53 out <<
"typedef __typeof__(sizeof(int)) __CPROVER::size_t;" <<
'\n';
54 out <<
"typedef __CPROVER::size_t " CPROVER_PREFIX "size_t;" <<
'\n';
57 <<
" __CPROVER::ssize_t;" <<
'\n';
58 out <<
"typedef __CPROVER::ssize_t " CPROVER_PREFIX "ssize_t;" <<
'\n';
61 out <<
"void operator delete(void *);" <<
'\n';
62 out <<
"void *operator new(__CPROVER::size_t);" <<
'\n';
64 out <<
"extern \"C\" {" <<
'\n';
67 out <<
"const unsigned __CPROVER::constant_infinity_uint;" <<
'\n';
79 out <<
"void *__new(__CPROVER::size_t);" <<
'\n';
80 out <<
"void *__new_array(__CPROVER::size_t, __CPROVER::size_t);" <<
'\n';
81 out <<
"void *__placement_new(__CPROVER::size_t, void *);" <<
'\n';
82 out <<
"void *__placement_new_array("
83 <<
"__CPROVER::size_t, __CPROVER::size_t, void *);" <<
'\n';
84 out <<
"void __delete(void *);" <<
'\n';
85 out <<
"void __delete_array(void *);" <<
'\n';
96 <<
" short next_avail;\n"
97 <<
" short next_unread;\n"
131 out <<
"typedef long double __float128;" <<
'\n';
155 out <<
"typedef signed __int128 __int128_t;" <<
'\n';
156 out <<
"typedef unsigned __int128 __uint128_t;" <<
'\n';
163 out <<
"int __noop(...);" <<
'\n';
164 out <<
"int __assume(int);" <<
'\n';
176 std::string architecture_strings;
178 out <<
c2cpp(architecture_strings);
187 out <<
"class type_info;" <<
'\n';
191 out <<
"struct _GUID;" <<
'\n';
194 out <<
"namespace ATL; " <<
'\n';
195 out <<
"void ATL::AtlThrowImpl(long);" <<
'\n';
196 out <<
"void __stdcall ATL::AtlThrowLastWin32();" <<
'\n';
irep_idt rounding_mode_identifier()
Return the identifier of the program symbol used to store the current rounding mode.
const char gcc_builtin_headers_types[]
const char cw_builtin_headers[]
const char arm_builtin_headers[]
void ansi_c_architecture_strings(std::string &code)
std::string c_type_as_string(const irep_idt &c_type)
signedbv_typet signed_size_type()
struct configt::ansi_ct ansi_c
std::string c2cpp(const std::string &s)
void cpp_internal_additions(std::ostream &out)
#define INITIALIZE_FUNCTION
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
ieee_floatt::rounding_modet rounding_mode
std::size_t long_int_width