diff options
author | Francois-Xavier Coudert <coudert@clipper.ens.fr> | 2005-11-04 09:29:16 +0100 |
---|---|---|
committer | François-Xavier Coudert <fxcoudert@gcc.gnu.org> | 2005-11-04 08:29:16 +0000 |
commit | a67ec6ab99c91c593138358b56dcc160aa09a015 (patch) | |
tree | 4d84eda381e6ccb216977e5d703d88994573c9d3 /gcc/c-opts.c | |
parent | 553ff21c96f1206b02864c070af7a0e19934c4c9 (diff) | |
download | gcc-a67ec6ab99c91c593138358b56dcc160aa09a015.zip gcc-a67ec6ab99c91c593138358b56dcc160aa09a015.tar.gz gcc-a67ec6ab99c91c593138358b56dcc160aa09a015.tar.bz2 |
re PR fortran/18452 (Fortran options induces warning for fortran that needs preprocessing)
PR fortran/18452
* gcc/fortran/lang-specs.h: Pass -lang-fortran to the preprocessor.
* gcc/c.opt: Add a -lang-fortran option.
* gcc/c-opts.c: Add a lang_fortran flag.
(c_common_init_options): Handling the -lang-fortran option.
(c_common_handle_option): Add a case for Fortran options in
preprocessing. Remove cases for -ffixed-form and
-ffixed-line-length. Add a case for -lang-fortran.
From-SVN: r106483
Diffstat (limited to 'gcc/c-opts.c')
-rw-r--r-- | gcc/c-opts.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/gcc/c-opts.c b/gcc/c-opts.c index b0efaf4..62db668 100644 --- a/gcc/c-opts.c +++ b/gcc/c-opts.c @@ -70,6 +70,9 @@ static bool deps_seen; /* If -v seen. */ static bool verbose; +/* If -lang-fortran seen. */ +static bool lang_fortran = false; + /* Dependency output file. */ static const char *deps_file; @@ -237,6 +240,15 @@ c_common_init_options (unsigned int argc, const char **argv) 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; @@ -258,6 +270,10 @@ 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; +#ifdef CL_Fortran + if (lang_fortran && (cl_options[code].flags & (CL_Fortran))) + break; +#endif result = 0; break; @@ -651,13 +667,6 @@ c_common_handle_option (size_t scode, const char *arg, int value) cpp_opts->extended_identifiers = value; break; - case OPT_ffixed_form: - case OPT_ffixed_line_length_: - /* Fortran front end options ignored when preprocessing only. */ - if (!flag_preprocess_only) - result = 0; - break; - case OPT_ffor_scope: flag_new_for_scope = value; break; @@ -833,6 +842,10 @@ c_common_handle_option (size_t scode, const char *arg, int value) cpp_opts->dollars_in_ident = false; break; + case OPT_lang_fortran: + lang_fortran = true; + break; + case OPT_lang_objc: cpp_opts->objc = 1; break; |