20 std::string
c2cpp(
const std::string &s)
24 result.reserve(s.size());
26 for(std::size_t i=0; i<s.size(); i++)
30 if(ch==
'_' && std::string(s, i, 5)==
"_Bool")
32 result.append(
"bool");
45 out <<
"# 1 \"<built-in-additions>\"" <<
'\n';
48 out <<
"namespace __CPROVER { }" <<
'\n';
51 out <<
"typedef __typeof__(sizeof(int)) __CPROVER::size_t;" <<
'\n';
52 out <<
"typedef __CPROVER::size_t " CPROVER_PREFIX "size_t;" <<
'\n';
55 <<
" __CPROVER::ssize_t;" <<
'\n';
56 out <<
"typedef __CPROVER::ssize_t " CPROVER_PREFIX "ssize_t;" <<
'\n';
59 out <<
"void operator delete(void *);" <<
'\n';
60 out <<
"void *operator new(__CPROVER::size_t);" <<
'\n';
62 out <<
"extern \"C\" {" <<
'\n';
65 out <<
"const unsigned __CPROVER::constant_infinity_uint;" <<
'\n';
72 <<
CPROVER_PREFIX "threads_exited[__CPROVER::constant_infinity_uint];" 74 out <<
"unsigned long " CPROVER_PREFIX "next_thread_id = 0;" <<
'\n';
75 out <<
"extern unsigned char " 76 <<
CPROVER_PREFIX "memory[__CPROVER::constant_infinity_uint];" <<
'\n';
90 out <<
"void *__new(__CPROVER::size_t);" <<
'\n';
91 out <<
"void *__new_array(__CPROVER::size_t, __CPROVER::size_t);" <<
'\n';
92 out <<
"void *__placement_new(__CPROVER::size_t, void *);" <<
'\n';
93 out <<
"void *__placement_new_array(" 94 <<
"__CPROVER::size_t, __CPROVER::size_t, void *);" <<
'\n';
95 out <<
"void __delete(void *);" <<
'\n';
96 out <<
"void __delete_array(void *);" <<
'\n';
105 <<
" bool widowed;\n" 106 <<
" char data[4];\n" 107 <<
" short next_avail;\n" 108 <<
" short next_unread;\n" 111 <<
"" CPROVER_PREFIX "pipes[__CPROVER::constant_infinity_uint];" <<
'\n';
148 out <<
"typedef long double __float128;" <<
'\n';
166 out <<
"typedef signed __int128 __int128_t;" <<
'\n';
167 out <<
"typedef unsigned __int128 __uint128_t;" <<
'\n';
174 out <<
"int __noop(...);" <<
'\n';
175 out <<
"int __assume(int);" <<
'\n';
187 std::string architecture_strings;
189 out <<
c2cpp(architecture_strings);
198 out <<
"class type_info;" <<
'\n';
202 out <<
"struct _GUID;" <<
'\n';
205 out <<
"namespace ATL; " <<
'\n';
206 out <<
"void ATL::AtlThrowImpl(long);" <<
'\n';
207 out <<
"void __stdcall ATL::AtlThrowLastWin32();" <<
'\n';
struct configt::ansi_ct ansi_c
std::string to_string(const string_not_contains_constraintt &expr)
Used for debug printing.
const char gcc_builtin_headers_types[]
signedbv_typet signed_size_type()
const char arm_builtin_headers[]
const char cw_builtin_headers[]
void cpp_internal_additions(std::ostream &out)
std::string c2cpp(const std::string &s)
#define INITIALIZE_FUNCTION
void ansi_c_architecture_strings(std::string &code)
std::string c_type_as_string(const irep_idt &c_type)
ieee_floatt::rounding_modet rounding_mode
std::size_t long_int_width