/* Common initialization before parsing options. */ unsigned int c_common_init_options (unsigned int argc, const char **argv) { static const unsigned int lang_flags[] = {CL_C, CL_ObjC, CL_CXX, CL_ObjCXX}; unsigned int i, result; /* This is conditionalized only because that is the way the front ends used to do it. Maybe this should be unconditional? */ if (c_dialect_cxx ()) { /* By default wrap lines at 80 characters. Is getenv ("COLUMNS") preferable? */ diagnostic_line_cutoff (global_dc) = 80; /* By default, emit location information once for every diagnostic message. */ diagnostic_prefixing_rule (global_dc) = DIAGNOSTICS_SHOW_PREFIX_ONCE; } parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89, ident_hash, &line_table); cpp_opts = cpp_get_options (parse_in); cpp_opts->dollars_in_ident = DOLLARS_IN_IDENTIFIERS; cpp_opts->objc = c_dialect_objc (); /* Reset to avoid warnings on internal definitions. We set it just before passing on command-line options to cpplib. */ cpp_opts->warn_dollars = 0; flag_exceptions = c_dialect_cxx (); warn_pointer_arith = c_dialect_cxx (); warn_write_strings = c_dialect_cxx(); deferred_opts = XNEWVEC (struct deferred_opt, argc); result = lang_flags[c_language]; if (c_language == clk_c) { /* If preprocessing assembly language, accept any of the C-family front end options since the driver may pass them through. */ for (i = 1; i < argc; i++) if (! strcmp (argv[i], "-lang-asm")) { result |= CL_C | CL_ObjC | CL_CXX | CL_ObjCXX; break; } #ifdef CL_Fortran for (i = 1; i < argc; i++) if (! strcmp (argv[i], "-lang-fortran")) { result |= CL_Fortran; break; } #endif } return result; }
/* Common initialization before calling option handlers. */ void c_common_init_options (unsigned int decoded_options_count, struct cl_decoded_option *decoded_options) { unsigned int i; struct cpp_callbacks *cb; parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89, ident_hash, line_table); cb = cpp_get_callbacks (parse_in); cb->error = c_cpp_error; cpp_opts = cpp_get_options (parse_in); cpp_opts->dollars_in_ident = DOLLARS_IN_IDENTIFIERS; cpp_opts->objc = c_dialect_objc (); /* Reset to avoid warnings on internal definitions. We set it just before passing on command-line options to cpplib. */ cpp_opts->warn_dollars = 0; deferred_opts = XNEWVEC (struct deferred_opt, decoded_options_count); if (c_language == clk_c) { /* If preprocessing assembly language, accept any of the C-family front end options since the driver may pass them through. */ for (i = 1; i < decoded_options_count; i++) if (decoded_options[i].opt_index == OPT_lang_asm) { accept_all_c_family_options = true; break; } } }
/* Common initialization before calling option handlers. */ void c_common_init_options (unsigned int decoded_options_count, struct cl_decoded_option *decoded_options) { unsigned int i; struct cpp_callbacks *cb; g_string_concat_db = new (ggc_alloc <string_concat_db> ()) string_concat_db (); parse_in = cpp_create_reader (c_dialect_cxx () ? CLK_GNUCXX: CLK_GNUC89, ident_hash, line_table); cb = cpp_get_callbacks (parse_in); cb->diagnostic = c_cpp_diagnostic; cpp_opts = cpp_get_options (parse_in); cpp_opts->dollars_in_ident = DOLLARS_IN_IDENTIFIERS; cpp_opts->objc = c_dialect_objc (); /* Reset to avoid warnings on internal definitions. We set it just before passing on command-line options to cpplib. */ cpp_opts->warn_dollars = 0; deferred_opts = XNEWVEC (struct deferred_opt, decoded_options_count); if (c_language == clk_c) { /* The default for C is gnu17. */ set_std_c17 (false /* ISO */); /* If preprocessing assembly language, accept any of the C-family front end options since the driver may pass them through. */ for (i = 1; i < decoded_options_count; i++) if (decoded_options[i].opt_index == OPT_lang_asm) { accept_all_c_family_options = true; break; } } /* Set C++ standard to C++14 if not specified on the command line. */ if (c_dialect_cxx ()) set_std_cxx14 (/*ISO*/false); global_dc->colorize_source_p = true; }
/* Defer option CODE with argument ARG. */ static void defer_opt (enum opt_code code, const char *arg) { deferred_opts[deferred_count].code = code; deferred_opts[deferred_count].arg = arg; deferred_count++; } /* Common initialization before parsing options. */ unsigned int sdcpp_common_init_options (unsigned int argc, const char **argv ATTRIBUTE_UNUSED) { struct cpp_callbacks *cb; parse_in = cpp_create_reader (CLK_GNUC89, NULL, line_table); cb = cpp_get_callbacks (parse_in); cb->error = c_cpp_error; cpp_opts = cpp_get_options (parse_in); cpp_opts->dollars_in_ident = DOLLARS_IN_IDENTIFIERS; cpp_opts->objc = 0; /* Reset to avoid warnings on internal definitions. We set it just before passing on command-line options to cpplib. */ cpp_opts->warn_dollars = 0; deferred_opts = XNEWVEC (struct deferred_opt, argc); return CL_SDCPP; }