This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Fortran, Patch] PR33862 - Support .ftn/.FTN file extension and use CPP for .FOR


:ADDPATCH fortran:

This patch adds support for .ftn to gfortran, which is treated as
fixed-form Fortran source code. ".FTN" is fixed-form plus preprocessor
(in line with other vendors). I also changed .FOR to use the
preprocessor to be in line with g95, ifort, sunf95, openf95.

I also added .for (and .ftn) to the info page.

Built and currently regression testing on x86-64/Linux (still running).
OK (unless regtest fails)?

Tobias
2007-10-27  Tobias Burnus  <burnus@net-b.de>

	PR fortran/33862
	* lang-specs.h: Support .ftn and .FTN extension, use CPP for .FOR.
	* options.c (form_from_filename): Support .ftn extension.
	* gfortran.texi: Document support of .for and .ftn file extension.

Index: gcc/fortran/lang-specs.h
===================================================================
--- gcc/fortran/lang-specs.h	(Revision 129678)
+++ gcc/fortran/lang-specs.h	(Arbeitskopie)
@@ -21,6 +21,8 @@
    for the f95 language.  */
 
 {".F",   "@f77-cpp-input", 0, 0, 0},
+{".FOR", "@f77-cpp-input", 0, 0, 0},
+{".FTN", "@f77-cpp-input", 0, 0, 0},
 {".fpp", "@f77-cpp-input", 0, 0, 0},
 {".FPP", "@f77-cpp-input", 0, 0, 0},
 {"@f77-cpp-input",
@@ -45,6 +47,6 @@
          %{!nostdinc:-fintrinsic-modules-path finclude%s} %{!fsyntax-only:%(invoke_as)}}", 0, 0, 0},
 {".f",   "@f77", 0, 0, 0},
 {".for", "@f77", 0, 0, 0},
-{".FOR", "@f77", 0, 0, 0},
+{".ftn", "@f77", 0, 0, 0},
 {"@f77", "%{!E:f951 %i %{!ffree-form:-ffixed-form} %(cc1_options) %{J*} %{I*}\
          %{!nostdinc:-fintrinsic-modules-path finclude%s} %{!fsyntax-only:%(invoke_as)}}", 0, 0, 0},
Index: gcc/fortran/options.c
===================================================================
--- gcc/fortran/options.c	(Revision 129678)
+++ gcc/fortran/options.c	(Arbeitskopie)
@@ -161,6 +161,9 @@ form_from_filename (const char *filename
     ".for", FORM_FIXED}
     ,
     {
+    ".ftn", FORM_FIXED}
+    ,
+    {
     "", FORM_UNKNOWN}
   };		/* sentinel value */
 
Index: gcc/fortran/gfortran.texi
===================================================================
--- gcc/fortran/gfortran.texi	(Revision 129678)
+++ gcc/fortran/gfortran.texi	(Arbeitskopie)
@@ -368,11 +368,11 @@ the relevant compiler front-end program 
 Fortran) for each file in the source code, and then calls the assembler
 and linker as appropriate to produce the compiled output. In a copy of
 GCC which has been compiled with Fortran language support enabled,
-@command{gcc} will recognize files with @file{.f}, @file{.f90}, @file{.f95},
-and @file{.f03} extensions as Fortran source code, and compile it
-accordingly.  A @command{gfortran} driver program is also provided,
-which is identical to @command{gcc} except that it automatically links
-the Fortran runtime libraries into the compiled program.
+@command{gcc} will recognize files with @file{.f}, @file{.for}, @file{.ftn},
+@file{.f90}, @file{.f95}, and @file{.f03} extensions as Fortran source code,
+and compile it accordingly. A @command{gfortran} driver program is also
+provided, which is identical to @command{gcc} except that it automatically
+links the Fortran runtime libraries into the compiled program.
 
 This manual specifically documents the Fortran front end, which handles
 the programming language's syntax and semantics.  The aspects of GCC
@@ -399,10 +399,11 @@ through a C preprocessor (CPP; sometimes
 FPP) to allow for conditional compilation. In case of GNU Fortran
 this is the GNU C Preprocessor in the traditional mode. On systems with
 case-preserving file names, the preprocessor is automatically invoked if the
-file extension is @code{.F}, @code{.F90}, @code{.F95} or @code{.F03};
-otherwise use for fixed-format code the option @code{-x f77-cpp-input}
-and for free-format code @code{-x f95-cpp-input}. Invocation of the
-preprocessor can be suppressed using @code{-x f77} or @code{-x f95}.
+file extension is @code{.F}, @code{.FOR}, @code{.FTN}, @code{.F90},
+@code{.F95} or @code{.F03}; otherwise use for fixed-format code the option
+@code{-x f77-cpp-input} and for free-format code @code{-x f95-cpp-input}.
+Invocation of the preprocessor can be suppressed using @code{-x f77} or
+@code{-x f95}.
 
 If the GNU Fortran invoked the preprocessor, @code{__GFORTRAN__}
 is defined and @code{__GNUC__}, @code{__GNUC_MINOR__} and

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]