From c907186351a707515963bab2c27633026292b5a3 Mon Sep 17 00:00:00 2001 From: Daniel Franke Date: Tue, 9 Dec 2008 14:53:02 -0500 Subject: [PATCH] re PR fortran/36376 (-cpp -save-temps passes unknown options to f951) 2008-12-09 Daniel Franke 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 | 8 ++++++++ gcc/fortran/lang-specs.h | 34 ++++++++++++++++++++++++---------- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 9b4bce7..82e03c9 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,5 +1,13 @@ 2008-12-09 Daniel Franke + 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 + PR fortran/36457 * lang.opt: Added option idirafter. * cpp.h (gfc_cpp_add_include_path_after): New prototype. diff --git a/gcc/fortran/lang-specs.h b/gcc/fortran/lang-specs.h index a766162..a622dcb 100644 --- a/gcc/fortran/lang-specs.h +++ b/gcc/fortran/lang-specs.h @@ -20,13 +20,23 @@ /* 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}, @@ -36,14 +46,15 @@ {".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}, @@ -54,11 +65,14 @@ {".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 -- 2.7.4