re PR fortran/36376 (-cpp -save-temps passes unknown options to f951)
authorDaniel Franke <franke.daniel@gmail.com>
Tue, 9 Dec 2008 19:53:02 +0000 (14:53 -0500)
committerDaniel Franke <dfranke@gcc.gnu.org>
Tue, 9 Dec 2008 19:53:02 +0000 (14:53 -0500)
2008-12-09  Daniel Franke  <franke.daniel@gmail.com>

        PR fortran/36376
        PR fortran/37468
* lang-specs.h: Pass on -i* options to f951 to (probably) report
        them as unknown. Duplicate gcc.c (cpp_options), but omit
        -fpch-preprocess on -save-temps.

From-SVN: r142608

gcc/fortran/ChangeLog
gcc/fortran/lang-specs.h

index 9b4bce7ac08cab36c172cb62ac8ffd954bb79652..82e03c9d25c0d8f3f494424e6dedab7a73fa9413 100644 (file)
@@ -1,3 +1,11 @@
+2008-12-09  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/36376
+       PR fortran/37468
+       * lang-specs.h: Pass on -i* options to f951 to (probably) report
+       them as unknown. Duplicate gcc.c (cpp_options), but omit
+       -fpch-preprocess on -save-temps.
+
 2008-12-09  Daniel Franke  <franke.daniel@gmail.com>
 
        PR fortran/36457
index a766162a5c828615762130c3b049e0b1c600891f..a622dcb1a6ab85cdeda12d947381826840fe182b 100644 (file)
 /* This is the contribution to the `default_compilers' array in gcc.c
    for the f95 language.  */
 
+/* Identical to gcc.c (cpp_options), but omitting %(cpp_unique_options)
+   and -fpch-preprocess on -save-temps.  */
+#define CPP_ONLY_OPTIONS    "%1 %{m*} %{f*} %{g*:%{!g0:%{g*} \
+                            %{!fno-working-directory:-fworking-directory}}} \
+                            %{std*&ansi&trigraphs} %{W*&pedantic*} %{w} \
+                            %{O*} %{undef}"
 
-#define F951_CPP_OPTIONS "%{!nocpp: -cpp %g.f90 %(cpp_options)\
-                          %{E|M|MM:%(cpp_debug_options) -fsyntax-only} %{E}}"
-#define F951_OPTIONS     "%(cc1_options) %{J*} %{!cpp: %{I*}}\
-                          %{!nostdinc:-fintrinsic-modules-path finclude%s}\
-                          %{!fsyntax-only:%(invoke_as)}"
-#define F951_SOURCE_FORM  "%{!ffree-form:-ffixed-form}"
+/* Options that f951 should know about, even if not preprocessing.  */
+#define CPP_FORWARD_OPTIONS "%{i*} %{I*}"
+
+#define F951_CPP_OPTIONS    "%{!nocpp: -cpp %g.f90 %{E} %(cpp_unique_options) \
+                            %{E|M|MM:%(cpp_debug_options) " CPP_ONLY_OPTIONS \
+                            " -fsyntax-only};: " CPP_FORWARD_OPTIONS "}"
+#define F951_OPTIONS        "%(cc1_options) %{J*} \
+                            %{!nostdinc:-fintrinsic-modules-path finclude%s}\
+                            %{!fsyntax-only:%(invoke_as)}"
+#define F951_SOURCE_FORM    "%{!ffree-form:-ffixed-form}"
 
 
 {".F",   "@f77-cpp-input", 0, 0, 0},
 {".FPP", "@f77-cpp-input", 0, 0, 0},
 {"@f77-cpp-input",
     "f951 %i " F951_SOURCE_FORM " " \
-               F951_CPP_OPTIONS " %{!E:" F951_OPTIONS "}", 0, 0, 0},
+         F951_CPP_OPTIONS " %{!E:" F951_OPTIONS "}", 0, 0, 0},
 {".f",   "@f77", 0, 0, 0},
 {".for", "@f77", 0, 0, 0},
 {".ftn", "@f77", 0, 0, 0},
 {"@f77",
     "f951 %i " F951_SOURCE_FORM " \
           %{E:%{!cpp:%egfortran does not support -E without -cpp}} \
-          %{cpp:" F951_CPP_OPTIONS "} %{!E:" F951_OPTIONS "}", 0, 0, 0},
+          %{cpp:" F951_CPP_OPTIONS ";: " CPP_FORWARD_OPTIONS  "} \
+         %{!E:" F951_OPTIONS "}", 0, 0, 0},
 {".F90", "@f95-cpp-input", 0, 0, 0},
 {".F95", "@f95-cpp-input", 0, 0, 0},
 {".F03", "@f95-cpp-input", 0, 0, 0},
 {".f95", "@f95", 0, 0, 0},
 {".f03", "@f95", 0, 0, 0},
 {".f08", "@f95", 0, 0, 0},
-{"@f95", 
+{"@f95",
     "f951 %i %{E:%{!cpp:%egfortran does not support -E without -cpp}}\
-          %{cpp:" F951_CPP_OPTIONS "} %{!E:" F951_OPTIONS "}", 0, 0, 0},
+         %{cpp:" F951_CPP_OPTIONS ";:  " CPP_FORWARD_OPTIONS  "} \
+         %{!E:" F951_OPTIONS "}", 0, 0, 0},
 
 
+#undef CPP_ONLY_OPTIONS
+#undef CPP_FORWARD_OPTIONS
 #undef F951_SOURCE_FORM
 #undef F951_CPP_OPTIONS
 #undef F951_OPTIONS