c_common_init:
Front end initialization common to C, ObjC and C++. */
bool c_common_init (void)
{
/* Set up preprocessor arithmetic. Must be done after call to
c_common_nodes_and_builtins for type nodes to be good. */
cpp_opts->precision = TYPE_PRECISION (intmax_type_node);
cpp_opts->char_precision = TYPE_PRECISION (char_type_node);
cpp_opts->int_precision = TYPE_PRECISION (integer_type_node);
cpp_opts->wchar_precision = TYPE_PRECISION (wchar_type_node);
cpp_opts->unsigned_wchar = TYPE_UNSIGNED (wchar_type_node);
cpp_opts->bytes_big_endian = BYTES_BIG_ENDIAN;
/* This can't happen until after wchar_precision and bytes_big_endian
are known. */
cpp_init_iconv (parse_in);
if (version_flag)
{
int i;
fputs ("Compiler executable checksum: ", stderr);
for (i = 0; i < 16; i++)
fprintf (stderr, "%02x", executable_checksum[i]);
putc ('\n', stderr);
}
/* Has to wait until now so that cpplib has its hash table. */
init_pragma ();
if (flag_preprocess_only)
{
c_finish_options ();
preprocess_file (parse_in);
return false;
}
return true;
}