From a67ec6ab99c91c593138358b56dcc160aa09a015 Mon Sep 17 00:00:00 2001 From: Francois-Xavier Coudert Date: Fri, 4 Nov 2005 09:29:16 +0100 Subject: [PATCH] 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/c-opts.c | 27 ++++++++++++++++++++------- gcc/c.opt | 3 +++ gcc/fortran/ChangeLog | 5 +++++ gcc/fortran/lang-specs.h | 4 ++-- 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b943e844210..fcb4ce4a870 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2005-11-04 Francois-Xavier Coudert + + PR fortran/18452 + * 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. + 2005-11-03 David Edelsohn * config/rs6000/rs6000.c: Include params.h diff --git a/gcc/c-opts.c b/gcc/c-opts.c index b0efaf4a61b..62db668b4e1 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; diff --git a/gcc/c.opt b/gcc/c.opt index eb01d325ab2..3d95ca2aba6 100644 --- a/gcc/c.opt +++ b/gcc/c.opt @@ -781,6 +781,9 @@ C ObjC C++ ObjC++ Joined Separate lang-asm C Undocumented +lang-fortran +C Undocumented + lang-objc C ObjC C++ ObjC++ Undocumented diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 8589e1c30bc..7e8cb395cf1 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2005-11-04 Francois-Xavier Coudert + + PR fortran/18452 + * lang-specs.h: Pass -lang-fortran to the preprocessor. + 2005-11-02 Andrew Pinski PR fortran/18157 diff --git a/gcc/fortran/lang-specs.h b/gcc/fortran/lang-specs.h index b18483f5c23..688fbc1f276 100644 --- a/gcc/fortran/lang-specs.h +++ b/gcc/fortran/lang-specs.h @@ -11,7 +11,7 @@ This file is licensed under the GPL. */ {".fpp", "@f77-cpp-input", 0, 0, 0}, {".FPP", "@f77-cpp-input", 0, 0, 0}, {"@f77-cpp-input", - "cc1 -E -traditional-cpp -D_LANGUAGE_FORTRAN %(cpp_options) \ + "cc1 -E -lang-fortran -traditional-cpp -D_LANGUAGE_FORTRAN %(cpp_options) \ %{E|M|MM:%(cpp_debug_options)}\ %{!M:%{!MM:%{!E: -o %|.f |\n\ f951 %|.f %{!ffree-form:-ffixed-form} %(cc1_options) %{J*} %{I*}\ @@ -19,7 +19,7 @@ This file is licensed under the GPL. */ {".F90", "@f95-cpp-input", 0, 0, 0}, {".F95", "@f95-cpp-input", 0, 0, 0}, {"@f95-cpp-input", - "cc1 -E -traditional-cpp -D_LANGUAGE_FORTRAN %(cpp_options) \ + "cc1 -E -lang-fortran -traditional-cpp -D_LANGUAGE_FORTRAN %(cpp_options) \ %{E|M|MM:%(cpp_debug_options)}\ %{!M:%{!MM:%{!E: -o %|.f95 |\n\ f951 %|.f95 %(cc1_options) %{J*} %{I*}\ -- 2.30.2