re PR fortran/18452 (Fortran options induces warning for fortran that needs preproces...
authorFrancois-Xavier Coudert <coudert@clipper.ens.fr>
Fri, 4 Nov 2005 08:29:16 +0000 (09:29 +0100)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Fri, 4 Nov 2005 08:29:16 +0000 (08:29 +0000)
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
gcc/c-opts.c
gcc/c.opt
gcc/fortran/ChangeLog
gcc/fortran/lang-specs.h

index b943e844210a5ae4864a0b5eb03f2a4eee8de132..fcb4ce4a870c4954dd1d491bc00f6325f2364700 100644 (file)
@@ -1,3 +1,13 @@
+2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       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  <edelsohn@gnu.org>
 
        * config/rs6000/rs6000.c: Include params.h
index b0efaf4a61b11ff4e6739341028eb099fbbd0eb2..62db668b4e12f02f0fd001ad72c54e09667db1b2 100644 (file)
@@ -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;
index eb01d325ab2ce35560e7694c18fb76d4a346e263..3d95ca2aba6e3ec8a2b812544e04f28b7204b4b3 100644 (file)
--- 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
 
index 8589e1c30bc3ab94c069dc30eb955cd48f913b06..7e8cb395cf1571a1e3c35c6af4c942796c69aaf5 100644 (file)
@@ -1,3 +1,8 @@
+2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+
+       PR fortran/18452
+       * lang-specs.h: Pass -lang-fortran to the preprocessor.
+
 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
 
        PR fortran/18157
index b18483f5c2338eed5b5773c6ec71b5be0c1aeb7a..688fbc1f276b1b1fb2c28e6374bd77e4b07a2ebb 100644 (file)
@@ -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*}\