aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-opts.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r--gcc/c-opts.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c
index 9f25343..02f1ada 100644
--- a/gcc/c-opts.c
+++ b/gcc/c-opts.c
@@ -406,11 +406,11 @@ c_common_init_options (lang)
#endif
c_language = lang;
- parse_in = cpp_create_reader (lang == clk_c || lang == clk_objective_c
+ parse_in = cpp_create_reader (lang == clk_c
? CLK_GNUC89 : CLK_GNUCXX);
cpp_opts = cpp_get_options (parse_in);
- if (lang == clk_objective_c)
+ if (flag_objc)
cpp_opts->objc = 1;
flag_const_strings = (lang == clk_cplusplus);
@@ -447,9 +447,14 @@ c_common_decode_option (argc, argv)
switch (c_language)
{
- case clk_c: lang_flag = CL_C_ONLY; break;
- case clk_cplusplus: lang_flag = CL_CXX_ONLY; break;
- case clk_objective_c: lang_flag = CL_OBJC_ONLY; break;
+ case clk_c: lang_flag = (flag_objc
+ ? CL_C
+ : CL_C_ONLY);
+ break;
+ case clk_cplusplus: lang_flag = (flag_objc
+ ? CL_CXX
+ : CL_CXX_ONLY);
+ break;
default: abort ();
}
@@ -557,7 +562,7 @@ c_common_decode_option (argc, argv)
if (warn_uninitialized != 1)
warn_uninitialized = (on ? 2 : 0);
- if (c_language == clk_c || c_language == clk_objective_c)
+ if (c_language == clk_c)
/* We set this to 2 here, but 1 in -Wmain, so -ffreestanding
can turn it off only if it's not explicit. */
warn_main = on * 2;
@@ -813,7 +818,7 @@ c_common_decode_option (argc, argv)
break;
case OPT_Wwrite_strings:
- if (c_language == clk_c || c_language == clk_objective_c)
+ if (c_language == clk_c)
flag_const_strings = on;
else
warn_write_strings = on;
@@ -824,7 +829,7 @@ c_common_decode_option (argc, argv)
break;
case OPT_fcond_mismatch:
- if (c_language == clk_c || c_language == clk_objective_c)
+ if (c_language == clk_c)
{
flag_cond_mismatch = on;
break;
@@ -1114,7 +1119,7 @@ c_common_decode_option (argc, argv)
case OPT_std_iso9899_199409:
case OPT_ansi:
/* Note: -ansi is used by both the C and C++ front ends. */
- if (c_language == clk_c || c_language == clk_objective_c)
+ if (c_language == clk_c)
{
flag_no_asm = 1;
flag_writable_strings = 0;