diff options
author | Roger Sayle <roger@eyesopen.com> | 2004-10-11 22:57:53 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-10-11 22:57:53 +0000 |
commit | afd85c1ac4ae0d686477f3e80d3bb08016e92872 (patch) | |
tree | 980a15344f27f138adaec49d0e95863c6769d4fd | |
parent | 1ca939e5ec6e33f8016a99ffe673e647a06ed6f3 (diff) | |
download | gcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.zip gcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.tar.gz gcc-afd85c1ac4ae0d686477f3e80d3bb08016e92872.tar.bz2 |
re PR other/17361 (gcc driver complains about C++ options when assembling)
PR other/17361
* c-opts.c (permit_fortran_options): Delete/obsolete global variable.
(c_common_init_options): Remove #ifdef CL_F77 code. Scan command
line options for "-lang-asm" and if found allow any of the C-family
front-end options.
(c_common_handle_option): Remove last use of permit_fortran_options.
From-SVN: r88906
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/c-opts.c | 26 |
2 files changed, 21 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5d8d74d..4083910 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2004-10-11 Roger Sayle <roger@eyesopen.com> + + PR other/17361 + * c-opts.c (permit_fortran_options): Delete/obsolete global variable. + (c_common_init_options): Remove #ifdef CL_F77 code. Scan command + line options for "-lang-asm" and if found allow any of the C-family + front-end options. + (c_common_handle_option): Remove last use of permit_fortran_options. + 2004-10-11 Ulrich Weigand <uweigand@de.ibm.com> * config/s390/s390.c (print_operand): Support 'S' format flag. diff --git a/gcc/c-opts.c b/gcc/c-opts.c index 0377a5d..82932ce 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -100,9 +100,6 @@ static size_t deferred_count; /* Number of deferred options scanned for -include. */ static size_t include_cursor; -/* Permit Fortran front-end options. */ -static bool permit_fortran_options; - static void set_Wimplicit (int); static void handle_OPT_d (const char *); static void set_std_cxx98 (int); @@ -194,10 +191,10 @@ defer_opt (enum opt_code code, const char *arg) /* Common initialization before parsing options. */ unsigned int -c_common_init_options (unsigned int argc, const char ** ARG_UNUSED (argv)) +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 result; + 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? */ @@ -230,16 +227,17 @@ c_common_init_options (unsigned int argc, const char ** ARG_UNUSED (argv)) result = lang_flags[c_language]; - /* If potentially preprocessing Fortran we have to accept its front - end options since the driver passes most of them through. */ -#ifdef CL_F77 - if (c_language == clk_c && argc > 2 - && !strcmp (argv[2], "-traditional-cpp" )) + if (c_language == clk_c) { - permit_fortran_options = true; - result |= CL_F77; + /* 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; + } } -#endif return result; } @@ -260,7 +258,7 @@ c_common_handle_option (size_t scode, const char *arg, int value) default: if (cl_options[code].flags & (CL_C | CL_CXX | CL_ObjC | CL_ObjCXX)) break; - result = permit_fortran_options; + result = 0; break; case OPT__output_pch_: |