]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/f/g77.info-5
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / f / g77.info-5
diff --git a/gcc/f/g77.info-5 b/gcc/f/g77.info-5
deleted file mode 100644 (file)
index 7b7072e..0000000
+++ /dev/null
@@ -1,1256 +0,0 @@
-This is g77.info, produced by makeinfo version 4.5 from g77.texi.
-
-INFO-DIR-SECTION Programming
-START-INFO-DIR-ENTRY
-* g77: (g77).                  The GNU Fortran compiler.
-END-INFO-DIR-ENTRY
-   This file documents the use and the internals of the GNU Fortran
-(`g77') compiler.  It corresponds to the GCC-3.2.3 version of `g77'.
-
-   Published by the Free Software Foundation 59 Temple Place - Suite 330
-Boston, MA 02111-1307 USA
-
-   Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 Free Software
-Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with the
-Invariant Sections being "GNU General Public License" and "Funding Free
-Software", the Front-Cover texts being (a) (see below), and with the
-Back-Cover Texts being (b) (see below).  A copy of the license is
-included in the section entitled "GNU Free Documentation License".
-
-   (a) The FSF's Front-Cover Text is:
-
-   A GNU Manual
-
-   (b) The FSF's Back-Cover Text is:
-
-   You have freedom to copy and modify this GNU Manual, like GNU
-software.  Copies published by the Free Software Foundation raise
-funds for GNU development.
-
-   Contributed by James Craig Burley (<craig@jcb-sc.com>).  Inspired by
-a first pass at translating `g77-0.5.16/f/DOC' that was contributed to
-Craig by David Ronis (<ronis@onsager.chem.mcgill.ca>).
-
-\1f
-File: g77.info,  Node: Changes,  Next: Language,  Prev: News,  Up: Top
-
-User-visible Changes
-********************
-
-   This chapter describes changes to `g77' that are visible to the
-programmers who actually write and maintain Fortran code they compile
-with `g77'.  Information on changes to installation procedures, changes
-to the documentation, and bug fixes is not provided here, unless it is
-likely to affect how users use `g77'.  *Note News About GNU Fortran:
-News, for information on such changes to `g77'.
-
-   Note that two variants of `g77' are tracked below.  The `egcs'
-variant is described vis-a-vis previous versions of `egcs' and/or an
-official FSF version, as appropriate.  Note that all such variants are
-obsolete _as of July 1999_ - the information is retained here only for
-its historical value.
-
-   Therefore, `egcs' versions sometimes have multiple listings to help
-clarify how they differ from other versions, though this can make
-getting a complete picture of what a particular `egcs' version contains
-somewhat more difficult.
-
-   For information on bugs in the GCC-3.2.3 version of `g77', see *Note
-Known Bugs In GNU Fortran: Known Bugs.
-
-   The following information was last updated on 2002-10-28:
-
-In `GCC' 3.2 versus `GCC' 3.1:
-==============================
-
-   * Problem Reports fixed (in chronological order of submission):
-    `8308'
-          gcc-3.x does not compile files with suffix .r (RATFOR) [Fixed
-          in 3.2.1]
-
-In `GCC' 3.1 (formerly known as g77-0.5.27) versus `GCC' 3.0:
-=============================================================
-
-   * Problem Reports fixed (in chronological order of submission):
-    `947'
-          Data statement initialization with subscript of kind INTEGER*2
-
-    `3743'
-          Reference to intrinsic `ISHFT' invalid
-
-    `3807'
-          Function BESJN(integer,double) problems
-
-    `3957'
-          g77 -pipe -xf77-cpp-input sends output to stdout
-
-    `4279'
-          g77 -h" gives bogus output
-
-    `4730'
-          ICE on valid input using CALL EXIT(%VAL(...))
-
-    `4752'
-          g77 -v -c -xf77-version /dev/null -xnone causes ice
-
-    `4885'
-          BACKSPACE example that doesn't work as of gcc/g77-3.0.x
-
-    `5122'
-          g77 rejects accepted use of INTEGER*2 as type of DATA
-          statement loop index
-
-    `5397'
-          ICE on compiling source with 540 000 000 REAL array
-
-    `5473'
-          ICE on BESJN(integer*8,real)
-
-    `5837'
-          bug in loop unrolling
-
-   * `g77' now has its man page generated from the texinfo
-     documentation, to guarantee that it remains up to date.
-
-   * `g77' used to reject the following program on 32-bit targets:
-          PROGRAM PROG
-          DIMENSION A(140 000 000)
-          END
-     with the message:
-          prog.f: In program `prog':
-          prog.f:2:
-                   DIMENSION A(140 000 000)
-                             ^
-          Array `a' at (^) is too large to handle
-     because 140 000 000 REALs is larger than the largest bit-extent
-     that can be expressed in 32 bits.  However, bit-sizes never play a
-     role after offsets have been converted to byte addresses.
-     Therefore this check has been removed, and the limit is now 2
-     Gbyte of memory (around 530 000 000 REALs).  Note: On GNU/Linux
-     systems one has to compile programs that occupy more than 1 Gbyte
-     statically, i.e. `g77 -static ...'.
-
-   * Based on work done by Juergen Pfeifer (<juergen.pfeifer@gmx.net>)
-     libf2c is now a shared library.  One can still link in all objects
-     with the program by specifying the `-static' option.
-
-   * Robert Anderson (<rwa@alumni.princeton.edu>) thought up a two line
-     change that enables g77 to compile such code as:
-          SUBROUTINE SUB(A, N)
-          DIMENSION N(2)
-          DIMENSION A(N(1),N(2))
-          A(1,1) = 1.
-          END
-     Note the use of array elements in the bounds of the adjustable
-     array A.
-
-   * George Helffrich (<george@geo.titech.ac.jp>) implemented a change
-     in substring index checking (when specifying `-fbounds-check')
-     that permits the use of zero length substrings of the form
-     `string(1:0)'.
-
-   * Based on code developed by Pedro Vazquez
-     (<vazquez@penelope.iqm.unicamp.br>), the `libf2c' library is now
-     able to read and write files larger than 2 Gbyte on 32-bit target
-     machines, if the operating system supports this.
-
-In 0.5.26, `GCC' 3.0 versus `GCC' 2.95:
-=======================================
-
-   * When a REWIND was issued after a WRITE statement on an unformatted
-     file, the implicit truncation was performed by copying the
-     truncated file to /tmp and copying the result back.  This has been
-     fixed by using the `ftruncate' OS function.  Thanks go to the
-     GAMESS developers for bringing this to our attention.
-
-   * Using options `-g', `-ggdb' or `-gdwarf[-2]' (where appropriate
-     for your target) now also enables debugging information for COMMON
-     BLOCK and EQUIVALENCE items to be emitted.  Thanks go to Andrew
-     Vaught (<andy@xena.eas.asu.edu>) and George Helffrich
-     (<george@geology.bristol.ac.uk>) for fixing this longstanding
-     problem.
-
-   * It is not necessary anymore to use the option `-femulate-complex'
-     to compile Fortran code using COMPLEX arithmetic, even on 64-bit
-     machines (like the Alpha).  This will improve code generation.
-
-   * INTRINSIC arithmetic functions are now treated as routines that do
-     not depend on anything but their argument(s).  This enables
-     further instruction scheduling, because it is known that they
-     cannot read or modify arbitrary locations.
-
-
-In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versus `EGCS' 1.1.2:
-=======================================================
-
-   * The new `-fbounds-check' option causes `g77' to compile run-time
-     bounds checks of array subscripts, as well as of substring start
-     and end points.
-
-   * `libg2c' now supports building as multilibbed library, which
-     provides better support for systems that require options such as
-     `-mieee' to work properly.
-
-   * Source file names with the suffixes `.FOR' and `.FPP' now are
-     recognized by `g77' as if they ended in `.for' and `.fpp',
-     respectively.
-
-   * The order of arguments to the _subroutine_ forms of the `CTime',
-     `DTime', `ETime', and `TtyNam' intrinsics has been swapped.  The
-     argument serving as the returned value for the corresponding
-     function forms now is the _second_ argument, making these
-     consistent with the other subroutine forms of `libU77' intrinsics.
-
-   * `g77' now warns about a reference to an intrinsic that has an
-     interface that is not Year 2000 (Y2K) compliant.  Also, `libg2c'
-     has been changed to increase the likelihood of catching references
-     to the implementations of these intrinsics using the `EXTERNAL'
-     mechanism (which would avoid the new warnings).
-
-     *Note Year 2000 (Y2K) Problems::, for more information.
-
-   * `-fno-emulate-complex' is now the default option.  This should
-     result in improved performance of code that uses the `COMPLEX'
-     data type.
-
-   * The `-malign-double' option now reliably aligns _all_
-     double-precision variables and arrays on Intel x86 targets.
-
-   * `g77' no longer generates code to maintain `errno', a C-language
-     concept, when performing operations such as the `SqRt' intrinsic.
-
-   * Support for the `-fugly' option has been removed.
-
-
-In 0.5.24 versus 0.5.23:
-========================
-
-   There is no `g77' version 0.5.24 at this time, or planned.  0.5.24
-is the version number designated for bug fixes and, perhaps, some new
-features added, to 0.5.23.  Version 0.5.23 requires `gcc' 2.8.1, as
-0.5.24 was planned to require.
-
-   Due to `EGCS' becoming `GCC' (which is now an acronym for "GNU
-Compiler Collection"), and `EGCS' 1.2 becoming officially designated
-`GCC' 2.95, there seems to be no need for an actual 0.5.24 release.
-
-   To reduce the confusion already resulting from use of 0.5.24 to
-designate `g77' versions within `EGCS' versions 1.0 and 1.1, as well as
-in versions of `g77' documentation and notices during that period,
-"mainline" `g77' version numbering resumes at 0.5.25 with `GCC' 2.95
-(`EGCS' 1.2), skipping over 0.5.24 as a placeholder version number.
-
-   To repeat, there is no `g77' 0.5.24, but there is now a 0.5.25.
-Please remain calm and return to your keypunch units.
-
-In `EGCS' 1.1.2 versus `EGCS' 1.1.1:
-====================================
-
-In `EGCS' 1.1.1 versus `EGCS' 1.1:
-==================================
-
-In `EGCS' 1.1 versus `EGCS' 1.0.3:
-==================================
-
-   * Support `FORMAT(I<EXPR>)' when EXPR is a compile-time constant
-     `INTEGER' expression.
-
-   * Fix `g77' `-g' option so procedures that use `ENTRY' can be
-     stepped through, line by line, in `gdb'.
-
-   * Allow any `REAL' argument to intrinsics `Second' and `CPU_Time'.
-
-   * Use `tempnam', if available, to open scratch files (as in
-     `OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
-     variable, if present, is used.
-
-   * `g77''s version of `libf2c' separates out the setting of global
-     state (such as command-line arguments and signal handling) from
-     `main.o' into distinct, new library archive members.
-
-     This should make it easier to write portable applications that
-     have their own (non-Fortran) `main()' routine properly set up the
-     `libf2c' environment, even when `libf2c' (now `libg2c') is a
-     shared library.
-
-   * The `g77' command now expects the run-time library to be named
-     `libg2c.a' instead of `libf2c.a', to ensure that a version other
-     than the one built and installed as part of the same `g77' version
-     is picked up.
-
-   * Some diagnostics have been changed from warnings to errors, to
-     prevent inadvertent use of the resulting, probably buggy, programs.
-     These mostly include diagnostics about use of unsupported features
-     in the `OPEN', `INQUIRE', `READ', and `WRITE' statements, and
-     about truncations of various sorts of constants.
-
-
-In `EGCS' 1.1 versus `g77' 0.5.23:
-==================================
-
-   * `g77' now treats `%LOC(EXPR)' and `LOC(EXPR)' as "ordinary"
-     expressions when they are used as arguments in procedure calls.
-     This change applies only to global (filewide) analysis, making it
-     consistent with how `g77' actually generates code for these cases.
-
-     Previously, `g77' treated these expressions as denoting special
-     "pointer" arguments for the purposes of filewide analysis.
-
-   * Align static double-precision variables and arrays on Intel x86
-     targets regardless of whether `-malign-double' is specified.
-
-     Generally, this affects only local variables and arrays having the
-     `SAVE' attribute or given initial values via `DATA'.
-
-   * The `g77' driver now ensures that `-lg2c' is specified in the link
-     phase prior to any occurrence of `-lm'.  This prevents
-     accidentally linking to a routine in the SunOS4 `-lm' library when
-     the generated code wants to link to the one in `libf2c' (`libg2c').
-
-   * `g77' emits more debugging information when `-g' is used.
-
-     This new information allows, for example, `which __g77_length_a'
-     to be used in `gdb' to determine the type of the phantom length
-     argument supplied with `CHARACTER' variables.
-
-     This information pertains to internally-generated type, variable,
-     and other information, not to the longstanding deficiencies
-     vis-a-vis `COMMON' and `EQUIVALENCE'.
-
-   * The F90 `Date_and_Time' intrinsic now is supported.
-
-   * The F90 `System_Clock' intrinsic allows the optional arguments
-     (except for the `Count' argument) to be omitted.
-
-
-In 0.5.23 versus 0.5.22:
-========================
-
-   * This release contains several regressions against version 0.5.22
-     of `g77', due to using the "vanilla" `gcc' back end instead of
-     patching it to fix a few bugs and improve performance in a few
-     cases.
-
-     Features that have been dropped from this version of `g77' due to
-     their being implemented via `g77'-specific patches to the `gcc'
-     back end in previous releases include:
-
-        - Support for `__restrict__' keyword, the options
-          `-fargument-alias', `-fargument-noalias', and
-          `-fargument-noalias-global', and the corresponding
-          alias-analysis code.
-
-          (`egcs' has the alias-analysis code, but not the
-          `__restrict__' keyword.  `egcs' `g77' users benefit from the
-          alias-analysis code despite the lack of the `__restrict__'
-          keyword, which is a C-language construct.)
-
-        - Support for the GNU compiler options `-fmove-all-movables',
-          `-freduce-all-givs', and `-frerun-loop-opt'.
-
-          (`egcs' supports these options.  `g77' users of `egcs'
-          benefit from them even if they are not explicitly specified,
-          because the defaults are optimized for `g77' users.)
-
-        - Support for the `-W' option warning about integer division by
-          zero.
-
-        - The Intel x86-specific option `-malign-double' applying to
-          stack-allocated data as well as statically-allocate data.
-
-   * Support `gcc' version 2.8, and remove support for prior versions
-     of `gcc'.
-
-   * Remove support for the `--driver' option, as `g77' now does all
-     the driving, just like `gcc'.
-
-   * The `g77' command now expects the run-time library to be named
-     `libg2c.a' instead of `libf2c.a', to ensure that a version other
-     than the one built and installed as part of the same `g77' version
-     is picked up.
-
-   * `g77''s version of `libf2c' separates out the setting of global
-     state (such as command-line arguments and signal handling) from
-     `main.o' into distinct, new library archive members.
-
-     This should make it easier to write portable applications that
-     have their own (non-Fortran) `main()' routine properly set up the
-     `libf2c' environment, even when `libf2c' (now `libg2c') is a
-     shared library.
-
-   * Some diagnostics have been changed from warnings to errors, to
-     prevent inadvertent use of the resulting, probably buggy, programs.
-     These mostly include diagnostics about use of unsupported features
-     in the `OPEN', `INQUIRE', `READ', and `WRITE' statements, and
-     about truncations of various sorts of constants.
-
-
-In 0.5.22 versus 0.5.21:
-========================
-
-   * Fix `Signal' intrinsic so it offers portable support for 64-bit
-     systems (such as Digital Alphas running GNU/Linux).
-
-   * Support `FORMAT(I<EXPR>)' when EXPR is a compile-time constant
-     `INTEGER' expression.
-
-   * Fix `g77' `-g' option so procedures that use `ENTRY' can be
-     stepped through, line by line, in `gdb'.
-
-   * Allow any `REAL' argument to intrinsics `Second' and `CPU_Time'.
-
-   * Allow any numeric argument to intrinsics `Int2' and `Int8'.
-
-   * Use `tempnam', if available, to open scratch files (as in
-     `OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment
-     variable, if present, is used.
-
-   * Rename the `gcc' keyword `restrict' to `__restrict__', to avoid
-     rejecting valid, existing, C programs.  Support for `restrict' is
-     now more like support for `complex'.
-
-   * Fix `-fugly-comma' to affect invocations of only external
-     procedures.  Restore rejection of gratuitous trailing omitted
-     arguments to intrinsics, as in `I=MAX(3,4,,)'.
-
-   * Fix compiler so it accepts `-fgnu-intrinsics-*' and
-     `-fbadu77-intrinsics-*' options.
-
-
-In `EGCS' 1.0.2 versus `EGCS' 1.0.1:
-====================================
-
-   * Fix compiler so it accepts `-fgnu-intrinsics-*' and
-     `-fbadu77-intrinsics-*' options.
-
-In `EGCS' 1.0.1 versus `EGCS' 1.0:
-==================================
-
-In `EGCS' 1.0 versus `g77' 0.5.21:
-==================================
-
-   * Version 1.0 of `egcs' contains several regressions against version
-     0.5.21 of `g77', due to using the "vanilla" `gcc' back end instead
-     of patching it to fix a few bugs and improve performance in a few
-     cases.
-
-     Features that have been dropped from this version of `g77' due to
-     their being implemented via `g77'-specific patches to the `gcc'
-     back end in previous releases include:
-
-        - Support for the C-language `restrict' keyword.
-
-        - Support for the `-W' option warning about integer division by
-          zero.
-
-        - The Intel x86-specific option `-malign-double' applying to
-          stack-allocated data as well as statically-allocate data.
-
-   * Remove support for the `--driver' option, as `g77' now does all
-     the driving, just like `gcc'.
-
-   * Allow any numeric argument to intrinsics `Int2' and `Int8'.
-
-
-In 0.5.21:
-==========
-
-   * When the `-W' option is specified, `gcc', `g77', and other GNU
-     compilers that incorporate the `gcc' back end as modified by
-     `g77', issue a warning about integer division by constant zero.
-
-   * New option `-Wno-globals' disables warnings about "suspicious" use
-     of a name both as a global name and as the implicit name of an
-     intrinsic, and warnings about disagreements over the number or
-     natures of arguments passed to global procedures, or the natures
-     of the procedures themselves.
-
-     The default is to issue such warnings, which are new as of this
-     version of `g77'.
-
-   * New option `-fno-globals' disables diagnostics about potentially
-     fatal disagreements analysis problems, such as disagreements over
-     the number or natures of arguments passed to global procedures, or
-     the natures of those procedures themselves.
-
-     The default is to issue such diagnostics and flag the compilation
-     as unsuccessful.  With this option, the diagnostics are issued as
-     warnings, or, if `-Wno-globals' is specified, are not issued at
-     all.
-
-     This option also disables inlining of global procedures, to avoid
-     compiler crashes resulting from coding errors that these
-     diagnostics normally would identify.
-
-   * Fix `libU77' routines that accept file and other names to strip
-     trailing blanks from them, for consistency with other
-     implementations.  Blanks may be forcibly appended to such names by
-     appending a single null character (`CHAR(0)') to the significant
-     trailing blanks.
-
-   * Fix `CHMOD' intrinsic to work with file names that have embedded
-     blanks, commas, and so on.
-
-   * Fix `SIGNAL' intrinsic so it accepts an optional third `Status'
-     argument.
-
-   * Make many changes to `libU77' intrinsics to support existing code
-     more directly.
-
-     Such changes include allowing both subroutine and function forms
-     of many routines, changing `MCLOCK()' and `TIME()' to return
-     `INTEGER(KIND=1)' values, introducing `MCLOCK8()' and `TIME8()' to
-     return `INTEGER(KIND=2)' values, and placing functions that are
-     intended to perform side effects in a new intrinsic group,
-     `badu77'.
-
-   * Add options `-fbadu77-intrinsics-delete',
-     `-fbadu77-intrinsics-hide', and so on.
-
-   * Add `INT2' and `INT8' intrinsics.
-
-   * Add `CPU_TIME' intrinsic.
-
-   * Add `ALARM' intrinsic.
-
-   * `CTIME' intrinsic now accepts any `INTEGER' argument, not just
-     `INTEGER(KIND=2)'.
-
-   * `g77' driver now prints version information (such as produced by
-     `g77 -v') to `stderr' instead of `stdout'.
-
-   * The `.r' suffix now designates a Ratfor source file, to be
-     preprocessed via the `ratfor' command, available separately.
-
-
-In 0.5.20:
-==========
-
-   * The `-fno-typeless-boz' option is now the default.
-
-     This option specifies that non-decimal-radix constants using the
-     prefixed-radix form (such as `Z'1234'') are to be interpreted as
-     `INTEGER(KIND=1)' constants.  Specify `-ftypeless-boz' to cause
-     such constants to be interpreted as typeless.
-
-     (Version 0.5.19 introduced `-fno-typeless-boz' and its inverse.)
-
-     *Note Options Controlling Fortran Dialect: Fortran Dialect Options,
-     for information on the `-ftypeless-boz' option.
-
-   * Options `-ff90-intrinsics-enable' and `-fvxt-intrinsics-enable'
-     now are the defaults.
-
-     Some programs might use names that clash with intrinsic names
-     defined (and now enabled) by these options or by the new `libU77'
-     intrinsics.  Users of such programs might need to compile them
-     differently (using, for example, `-ff90-intrinsics-disable') or,
-     better yet, insert appropriate `EXTERNAL' statements specifying
-     that these names are not intended to be names of intrinsics.
-
-   * The `ALWAYS_FLUSH' macro is no longer defined when building
-     `libf2c', which should result in improved I/O performance,
-     especially over NFS.
-
-     _Note:_ If you have code that depends on the behavior of `libf2c'
-     when built with `ALWAYS_FLUSH' defined, you will have to modify
-     `libf2c' accordingly before building it from this and future
-     versions of `g77'.
-
-     *Note Output Assumed To Flush::, for more information.
-
-   * Dave Love's implementation of `libU77' has been added to the
-     version of `libf2c' distributed with and built as part of `g77'.
-     `g77' now knows about the routines in this library as intrinsics.
-
-   * New option `-fvxt' specifies that the source file is written in
-     VXT Fortran, instead of GNU Fortran.
-
-     *Note VXT Fortran::, for more information on the constructs
-     recognized when the `-fvxt' option is specified.
-
-   * The `-fvxt-not-f90' option has been deleted, along with its
-     inverse, `-ff90-not-vxt'.
-
-     If you used one of these deleted options, you should re-read the
-     pertinent documentation to determine which options, if any, are
-     appropriate for compiling your code with this version of `g77'.
-
-     *Note Other Dialects::, for more information.
-
-   * The `-fugly' option now issues a warning, as it likely will be
-     removed in a future version.
-
-     (Enabling all the `-fugly-*' options is unlikely to be feasible,
-     or sensible, in the future, so users should learn to specify only
-     those `-fugly-*' options they really need for a particular source
-     file.)
-
-   * The `-fugly-assumed' option, introduced in version 0.5.19, has
-     been changed to better accommodate old and new code.
-
-     *Note Ugly Assumed-Size Arrays::, for more information.
-
-   * Related to supporting Alpha (AXP) machines, the `LOC()' intrinsic
-     and `%LOC()' construct now return values of `INTEGER(KIND=0)' type,
-     as defined by the GNU Fortran language.
-
-     This type is wide enough (holds the same number of bits) as the
-     character-pointer type on the machine.
-
-     On most machines, this won't make a difference, whereas, on Alphas
-     and other systems with 64-bit pointers, the `INTEGER(KIND=0)' type
-     is equivalent to `INTEGER(KIND=2)' (often referred to as
-     `INTEGER*8') instead of the more common `INTEGER(KIND=1)' (often
-     referred to as `INTEGER*4').
-
-   * Emulate `COMPLEX' arithmetic in the `g77' front end, to avoid bugs
-     in `complex' support in the `gcc' back end.  New option
-     `-fno-emulate-complex' causes `g77' to revert the 0.5.19 behavior.
-
-   * Dummy arguments are no longer assumed to potentially alias
-     (overlap) other dummy arguments or `COMMON' areas when any of
-     these are defined (assigned to) by Fortran code.
-
-     This can result in faster and/or smaller programs when compiling
-     with optimization enabled, though on some systems this effect is
-     observed only when `-fforce-addr' also is specified.
-
-     New options `-falias-check', `-fargument-alias',
-     `-fargument-noalias', and `-fno-argument-noalias-global' control
-     the way `g77' handles potential aliasing.
-
-     *Note Aliasing Assumed To Work::, for detailed information on why
-     the new defaults might result in some programs no longer working
-     the way they did when compiled by previous versions of `g77'.
-
-   * New option `-fugly-assign' specifies that the same memory
-     locations are to be used to hold the values assigned by both
-     statements `I = 3' and `ASSIGN 10 TO I', for example.  (Normally,
-     `g77' uses a separate memory location to hold assigned statement
-     labels.)
-
-     *Note Ugly Assigned Labels::, for more information.
-
-   * `FORMAT' and `ENTRY' statements now are allowed to precede
-     `IMPLICIT NONE' statements.
-
-   * Enable full support of `INTEGER(KIND=2)' (often referred to as
-     `INTEGER*8') available in `libf2c' and `f2c.h' so that `f2c' users
-     may make full use of its features via the `g77' version of `f2c.h'
-     and the `INTEGER(KIND=2)' support routines in the `g77' version of
-     `libf2c'.
-
-   * Improve `g77' driver and `libf2c' so that `g77 -v' yields version
-     information on the library.
-
-   * The `SNGL' and `FLOAT' intrinsics now are specific intrinsics,
-     instead of synonyms for the generic intrinsic `REAL'.
-
-   * New intrinsics have been added.  These are `REALPART', `IMAGPART',
-     `COMPLEX', `LONG', and `SHORT'.
-
-   * A new group of intrinsics, `gnu', has been added to contain the
-     new `REALPART', `IMAGPART', and `COMPLEX' intrinsics.  An old
-     group, `dcp', has been removed.
-
-   * Complain about industry-wide ambiguous references `REAL(EXPR)' and
-     `AIMAG(EXPR)', where EXPR is `DOUBLE COMPLEX' (or any complex type
-     other than `COMPLEX'), unless `-ff90' option specifies Fortran 90
-     interpretation or new `-fugly-complex' option, in conjunction with
-     `-fnot-f90', specifies `f2c' interpretation.
-
-
-In previous versions:
-=====================
-
-   Information on previous versions is archived in `gcc/gcc/f/news.texi'
-following the test of the `DOC-OLDNEWS' macro.
-
-\1f
-File: g77.info,  Node: Language,  Next: Compiler,  Prev: Changes,  Up: Top
-
-The GNU Fortran Language
-************************
-
-   GNU Fortran supports a variety of extensions to, and dialects of,
-the Fortran language.  Its primary base is the ANSI FORTRAN 77
-standard, currently available on the network at
-`http://www.fortran.com/fortran/F77_std/rjcnf0001.html' or as
-monolithic text at
-`http://www.fortran.com/fortran/F77_std/f77_std.html'.  It offers some
-extensions that are popular among users of UNIX `f77' and `f2c'
-compilers, some that are popular among users of other compilers (such
-as Digital products), some that are popular among users of the newer
-Fortran 90 standard, and some that are introduced by GNU Fortran.
-
-   (If you need a text on Fortran, a few freely available electronic
-references have pointers from `http://www.fortran.com/fortran/Books/'.
-There is a `cooperative net project', `User Notes on Fortran
-Programming' at `ftp://vms.huji.ac.il/fortran/' and mirrors elsewhere;
-some of this material might not apply specifically to `g77'.)
-
-   Part of what defines a particular implementation of a Fortran
-system, such as `g77', is the particular characteristics of how it
-supports types, constants, and so on.  Much of this is left up to the
-implementation by the various Fortran standards and accepted practice
-in the industry.
-
-   The GNU Fortran _language_ is described below.  Much of the material
-is organized along the same lines as the ANSI FORTRAN 77 standard
-itself.
-
-   *Note Other Dialects::, for information on features `g77' supports
-that are not part of the GNU Fortran language.
-
-   _Note_: This portion of the documentation definitely needs a lot of
-work!
-
-* Menu:
-
-Relationship to the ANSI FORTRAN 77 standard:
-* Direction of Language Development::  Where GNU Fortran is headed.
-* Standard Support::  Degree of support for the standard.
-
-Extensions to the ANSI FORTRAN 77 standard:
-* Conformance::
-* Notation Used::
-* Terms and Concepts::
-* Characters Lines Sequence::
-* Data Types and Constants::
-* Expressions::
-* Specification Statements::
-* Control Statements::
-* Functions and Subroutines::
-* Scope and Classes of Names::
-* I/O::
-* Fortran 90 Features::
-
-\1f
-File: g77.info,  Node: Direction of Language Development,  Next: Standard Support,  Up: Language
-
-Direction of Language Development
-=================================
-
-   The purpose of the following description of the GNU Fortran language
-is to promote wide portability of GNU Fortran programs.
-
-   GNU Fortran is an evolving language, due to the fact that `g77'
-itself is in beta test.  Some current features of the language might
-later be redefined as dialects of Fortran supported by `g77' when
-better ways to express these features are added to `g77', for example.
-Such features would still be supported by `g77', but would be available
-only when one or more command-line options were used.
-
-   The GNU Fortran _language_ is distinct from the GNU Fortran
-_compilation system_ (`g77').
-
-   For example, `g77' supports various dialects of Fortran--in a sense,
-these are languages other than GNU Fortran--though its primary purpose
-is to support the GNU Fortran language, which also is described in its
-documentation and by its implementation.
-
-   On the other hand, non-GNU compilers might offer support for the GNU
-Fortran language, and are encouraged to do so.
-
-   Currently, the GNU Fortran language is a fairly fuzzy object.  It
-represents something of a cross between what `g77' accepts when
-compiling using the prevailing defaults and what this document
-describes as being part of the language.
-
-   Future versions of `g77' are expected to clarify the definition of
-the language in the documentation.  Often, this will mean adding new
-features to the language, in the form of both new documentation and new
-support in `g77'.  However, it might occasionally mean removing a
-feature from the language itself to "dialect" status.  In such a case,
-the documentation would be adjusted to reflect the change, and `g77'
-itself would likely be changed to require one or more command-line
-options to continue supporting the feature.
-
-   The development of the GNU Fortran language is intended to strike a
-balance between:
-
-   * Serving as a mostly-upwards-compatible language from the de facto
-     UNIX Fortran dialect as supported by `f77'.
-
-   * Offering new, well-designed language features.  Attributes of such
-     features include not making existing code any harder to read (for
-     those who might be unaware that the new features are not in use)
-     and not making state-of-the-art compilers take longer to issue
-     diagnostics, among others.
-
-   * Supporting existing, well-written code without gratuitously
-     rejecting non-standard constructs, regardless of the origin of the
-     code (its dialect).
-
-   * Offering default behavior and command-line options to reduce and,
-     where reasonable, eliminate the need for programmers to make any
-     modifications to code that already works in existing production
-     environments.
-
-   * Diagnosing constructs that have different meanings in different
-     systems, languages, and dialects, while offering clear, less
-     ambiguous ways to express each of the different meanings so
-     programmers can change their code appropriately.
-
-   One of the biggest practical challenges for the developers of the
-GNU Fortran language is meeting the sometimes contradictory demands of
-the above items.
-
-   For example, a feature might be widely used in one popular
-environment, but the exact same code that utilizes that feature might
-not work as expected--perhaps it might mean something entirely
-different--in another popular environment.
-
-   Traditionally, Fortran compilers--even portable ones--have solved
-this problem by simply offering the appropriate feature to users of the
-respective systems.  This approach treats users of various Fortran
-systems and dialects as remote "islands", or camps, of programmers, and
-assume that these camps rarely come into contact with each other (or,
-especially, with each other's code).
-
-   Project GNU takes a radically different approach to software and
-language design, in that it assumes that users of GNU software do not
-necessarily care what kind of underlying system they are using,
-regardless of whether they are using software (at the user-interface
-level) or writing it (for example, writing Fortran or C code).
-
-   As such, GNU users rarely need consider just what kind of underlying
-hardware (or, in many cases, operating system) they are using at any
-particular time.  They can use and write software designed for a
-general-purpose, widely portable, heterogenous environment--the GNU
-environment.
-
-   In line with this philosophy, GNU Fortran must evolve into a product
-that is widely ported and portable not only in the sense that it can be
-successfully built, installed, and run by users, but in the larger
-sense that its users can use it in the same way, and expect largely the
-same behaviors from it, regardless of the kind of system they are using
-at any particular time.
-
-   This approach constrains the solutions `g77' can use to resolve
-conflicts between various camps of Fortran users.  If these two camps
-disagree about what a particular construct should mean, `g77' cannot
-simply be changed to treat that particular construct as having one
-meaning without comment (such as a warning), lest the users expecting
-it to have the other meaning are unpleasantly surprised that their code
-misbehaves when executed.
-
-   The use of the ASCII backslash character in character constants is
-an excellent (and still somewhat unresolved) example of this kind of
-controversy.  *Note Backslash in Constants::.  Other examples are
-likely to arise in the future, as `g77' developers strive to improve
-its ability to accept an ever-wider variety of existing Fortran code
-without requiring significant modifications to said code.
-
-   Development of GNU Fortran is further constrained by the desire to
-avoid requiring programmers to change their code.  This is important
-because it allows programmers, administrators, and others to more
-faithfully evaluate and validate `g77' (as an overall product and as
-new versions are distributed) without having to support multiple
-versions of their programs so that they continue to work the same way
-on their existing systems (non-GNU perhaps, but possibly also earlier
-versions of `g77').
-
-\1f
-File: g77.info,  Node: Standard Support,  Next: Conformance,  Prev: Direction of Language Development,  Up: Language
-
-ANSI FORTRAN 77 Standard Support
-================================
-
-   GNU Fortran supports ANSI FORTRAN 77 with the following caveats.  In
-summary, the only ANSI FORTRAN 77 features `g77' doesn't support are
-those that are probably rarely used in actual code, some of which are
-explicitly disallowed by the Fortran 90 standard.
-
-* Menu:
-
-* No Passing External Assumed-length::  CHAR*(*) CFUNC restriction.
-* No Passing Dummy Assumed-length::     CHAR*(*) CFUNC restriction.
-* No Pathological Implied-DO::          No `((..., I=...), I=...)'.
-* No Useless Implied-DO::               No `(A, I=1, 1)'.
-
-\1f
-File: g77.info,  Node: No Passing External Assumed-length,  Next: No Passing Dummy Assumed-length,  Up: Standard Support
-
-No Passing External Assumed-length
-----------------------------------
-
-   `g77' disallows passing of an external procedure as an actual
-argument if the procedure's type is declared `CHARACTER*(*)'.  For
-example:
-
-     CHARACTER*(*) CFUNC
-     EXTERNAL CFUNC
-     CALL FOO(CFUNC)
-     END
-
-It isn't clear whether the standard considers this conforming.
-
-\1f
-File: g77.info,  Node: No Passing Dummy Assumed-length,  Next: No Pathological Implied-DO,  Prev: No Passing External Assumed-length,  Up: Standard Support
-
-No Passing Dummy Assumed-length
--------------------------------
-
-   `g77' disallows passing of a dummy procedure as an actual argument
-if the procedure's type is declared `CHARACTER*(*)'.
-
-     SUBROUTINE BAR(CFUNC)
-     CHARACTER*(*) CFUNC
-     EXTERNAL CFUNC
-     CALL FOO(CFUNC)
-     END
-
-It isn't clear whether the standard considers this conforming.
-
-\1f
-File: g77.info,  Node: No Pathological Implied-DO,  Next: No Useless Implied-DO,  Prev: No Passing Dummy Assumed-length,  Up: Standard Support
-
-No Pathological Implied-DO
---------------------------
-
-   The `DO' variable for an implied-`DO' construct in a `DATA'
-statement may not be used as the `DO' variable for an outer
-implied-`DO' construct.  For example, this fragment is disallowed by
-`g77':
-
-     DATA ((A(I, I), I= 1, 10), I= 1, 10) /.../
-
-This also is disallowed by Fortran 90, as it offers no additional
-capabilities and would have a variety of possible meanings.
-
-   Note that it is _very_ unlikely that any production Fortran code
-tries to use this unsupported construct.
-
-\1f
-File: g77.info,  Node: No Useless Implied-DO,  Prev: No Pathological Implied-DO,  Up: Standard Support
-
-No Useless Implied-DO
----------------------
-
-   An array element initializer in an implied-`DO' construct in a
-`DATA' statement must contain at least one reference to the `DO'
-variables of each outer implied-`DO' construct.  For example, this
-fragment is disallowed by `g77':
-
-     DATA (A, I= 1, 1) /1./
-
-This also is disallowed by Fortran 90, as FORTRAN 77's more permissive
-requirements offer no additional capabilities.  However, `g77' doesn't
-necessarily diagnose all cases where this requirement is not met.
-
-   Note that it is _very_ unlikely that any production Fortran code
-tries to use this unsupported construct.
-
-\1f
-File: g77.info,  Node: Conformance,  Next: Notation Used,  Prev: Standard Support,  Up: Language
-
-Conformance
-===========
-
-   (The following information augments or overrides the information in
-Section 1.4 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran
-language.  Chapter 1 of that document otherwise serves as the basis for
-the relevant aspects of GNU Fortran.)
-
-   The definition of the GNU Fortran language is akin to that of the
-ANSI FORTRAN 77 language in that it does not generally require
-conforming implementations to diagnose cases where programs do not
-conform to the language.
-
-   However, `g77' as a compiler is being developed in a way that is
-intended to enable it to diagnose such cases in an easy-to-understand
-manner.
-
-   A program that conforms to the GNU Fortran language should, when
-compiled, linked, and executed using a properly installed `g77' system,
-perform as described by the GNU Fortran language definition.  Reasons
-for different behavior include, among others:
-
-   * Use of resources (memory--heap, stack, and so on; disk space; CPU
-     time; etc.) exceeds those of the system.
-
-   * Range and/or precision of calculations required by the program
-     exceeds that of the system.
-
-   * Excessive reliance on behaviors that are system-dependent
-     (non-portable Fortran code).
-
-   * Bugs in the program.
-
-   * Bug in `g77'.
-
-   * Bugs in the system.
-
-   Despite these "loopholes", the availability of a clear specification
-of the language of programs submitted to `g77', as this document is
-intended to provide, is considered an important aspect of providing a
-robust, clean, predictable Fortran implementation.
-
-   The definition of the GNU Fortran language, while having no special
-legal status, can therefore be viewed as a sort of contract, or
-agreement.  This agreement says, in essence, "if you write a program in
-this language, and run it in an environment (such as a `g77' system)
-that supports this language, the program should behave in a largely
-predictable way".
-
-\1f
-File: g77.info,  Node: Notation Used,  Next: Terms and Concepts,  Prev: Conformance,  Up: Language
-
-Notation Used in This Chapter
-=============================
-
-   (The following information augments or overrides the information in
-Section 1.5 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran
-language.  Chapter 1 of that document otherwise serves as the basis for
-the relevant aspects of GNU Fortran.)
-
-   In this chapter, "must" denotes a requirement, "may" denotes
-permission, and "must not" and "may not" denote prohibition.  Terms
-such as "might", "should", and "can" generally add little or nothing in
-the way of weight to the GNU Fortran language itself, but are used to
-explain or illustrate the language.
-
-   For example:
-
-     ``The `FROBNITZ' statement must precede all executable
-     statements in a program unit, and may not specify any dummy
-     arguments.  It may specify local or common variables and arrays.
-     Its use should be limited to portions of the program designed to
-     be non-portable and system-specific, because it might cause the
-     containing program unit to behave quite differently on different
-     systems.''
-
-   Insofar as the GNU Fortran language is specified, the requirements
-and permissions denoted by the above sample statement are limited to
-the placement of the statement and the kinds of things it may specify.
-The rest of the statement--the content regarding non-portable portions
-of the program and the differing behavior of program units containing
-the `FROBNITZ' statement--does not pertain the GNU Fortran language
-itself.  That content offers advice and warnings about the `FROBNITZ'
-statement.
-
-   _Remember:_ The GNU Fortran language definition specifies both what
-constitutes a valid GNU Fortran program and how, given such a program,
-a valid GNU Fortran implementation is to interpret that program.
-
-   It is _not_ incumbent upon a valid GNU Fortran implementation to
-behave in any particular way, any consistent way, or any predictable
-way when it is asked to interpret input that is _not_ a valid GNU
-Fortran program.
-
-   Such input is said to have "undefined" behavior when interpreted by
-a valid GNU Fortran implementation, though an implementation may choose
-to specify behaviors for some cases of inputs that are not valid GNU
-Fortran programs.
-
-   Other notation used herein is that of the GNU texinfo format, which
-is used to generate printed hardcopy, on-line hypertext (Info), and
-on-line HTML versions, all from a single source document.  This
-notation is used as follows:
-
-   * Keywords defined by the GNU Fortran language are shown in
-     uppercase, as in: `COMMON', `INTEGER', and `BLOCK DATA'.
-
-     Note that, in practice, many Fortran programs are written in
-     lowercase--uppercase is used in this manual as a means to readily
-     distinguish keywords and sample Fortran-related text from the
-     prose in this document.
-
-   * Portions of actual sample program, input, or output text look like
-     this: `Actual program text'.
-
-     Generally, uppercase is used for all Fortran-specific and
-     Fortran-related text, though this does not always include literal
-     text within Fortran code.
-
-     For example: `PRINT *, 'My name is Bob''.
-
-   * A metasyntactic variable--that is, a name used in this document to
-     serve as a placeholder for whatever text is used by the user or
-     programmer--appears as shown in the following example:
-
-     "The `INTEGER IVAR' statement specifies that IVAR is a variable or
-     array of type `INTEGER'."
-
-     In the above example, any valid text may be substituted for the
-     metasyntactic variable IVAR to make the statement apply to a
-     specific instance, as long as the same text is substituted for
-     _both_ occurrences of IVAR.
-
-   * Ellipses ("...") are used to indicate further text that is either
-     unimportant or expanded upon further, elsewhere.
-
-   * Names of data types are in the style of Fortran 90, in most cases.
-
-     *Note Kind Notation::, for information on the relationship between
-     Fortran 90 nomenclature (such as `INTEGER(KIND=1)') and the more
-     traditional, less portably concise nomenclature (such as
-     `INTEGER*4').
-
-\1f
-File: g77.info,  Node: Terms and Concepts,  Next: Characters Lines Sequence,  Prev: Notation Used,  Up: Language
-
-Fortran Terms and Concepts
-==========================
-
-   (The following information augments or overrides the information in
-Chapter 2 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran
-language.  Chapter 2 of that document otherwise serves as the basis for
-the relevant aspects of GNU Fortran.)
-
-* Menu:
-
-* Syntactic Items::
-* Statements Comments Lines::
-* Scope of Names and Labels::
-
-\1f
-File: g77.info,  Node: Syntactic Items,  Next: Statements Comments Lines,  Up: Terms and Concepts
-
-Syntactic Items
----------------
-
-   (Corresponds to Section 2.2 of ANSI X3.9-1978 FORTRAN 77.)
-
-   In GNU Fortran, a symbolic name is at least one character long, and
-has no arbitrary upper limit on length.  However, names of entities
-requiring external linkage (such as external functions, external
-subroutines, and `COMMON' areas) might be restricted to some arbitrary
-length by the system.  Such a restriction is no more constrained than
-that of one through six characters.
-
-   Underscores (`_') are accepted in symbol names after the first
-character (which must be a letter).
-
-\1f
-File: g77.info,  Node: Statements Comments Lines,  Next: Scope of Names and Labels,  Prev: Syntactic Items,  Up: Terms and Concepts
-
-Statements, Comments, and Lines
--------------------------------
-
-   (Corresponds to Section 2.3 of ANSI X3.9-1978 FORTRAN 77.)
-
-   Use of an exclamation point (`!') to begin a trailing comment (a
-comment that extends to the end of the same source line) is permitted
-under the following conditions:
-
-   * The exclamation point does not appear in column 6.  Otherwise, it
-     is treated as an indicator of a continuation line.
-
-   * The exclamation point appears outside a character or Hollerith
-     constant.  Otherwise, the exclamation point is considered part of
-     the constant.
-
-   * The exclamation point appears to the left of any other possible
-     trailing comment.  That is, a trailing comment may contain
-     exclamation points in their commentary text.
-
-   Use of a semicolon (`;') as a statement separator is permitted under
-the following conditions:
-
-   * The semicolon appears outside a character or Hollerith constant.
-     Otherwise, the semicolon is considered part of the constant.
-
-   * The semicolon appears to the left of a trailing comment.
-     Otherwise, the semicolon is considered part of that comment.
-
-   * Neither a logical `IF' statement nor a non-construct `WHERE'
-     statement (a Fortran 90 feature) may be followed (in the same,
-     possibly continued, line) by a semicolon used as a statement
-     separator.
-
-     This restriction avoids the confusion that can result when reading
-     a line such as:
-
-          IF (VALIDP) CALL FOO; CALL BAR
-
-     Some readers might think the `CALL BAR' is executed only if
-     `VALIDP' is `.TRUE.', while others might assume its execution is
-     unconditional.
-
-     (At present, `g77' does not diagnose code that violates this
-     restriction.)
-
-\1f
-File: g77.info,  Node: Scope of Names and Labels,  Prev: Statements Comments Lines,  Up: Terms and Concepts
-
-Scope of Symbolic Names and Statement Labels
---------------------------------------------
-
-   (Corresponds to Section 2.9 of ANSI X3.9-1978 FORTRAN 77.)
-
-   Included in the list of entities that have a scope of a program unit
-are construct names (a Fortran 90 feature).  *Note Construct Names::,
-for more information.
-
-\1f
-File: g77.info,  Node: Characters Lines Sequence,  Next: Data Types and Constants,  Prev: Terms and Concepts,  Up: Language
-
-Characters, Lines, and Execution Sequence
-=========================================
-
-   (The following information augments or overrides the information in
-Chapter 3 of ANSI X3.9-1978 FORTRAN 77 in specifying the GNU Fortran
-language.  Chapter 3 of that document otherwise serves as the basis for
-the relevant aspects of GNU Fortran.)
-
-* Menu:
-
-* Character Set::
-* Lines::
-* Continuation Line::
-* Statements::
-* Statement Labels::
-* Order::
-* INCLUDE::
-* Cpp-style directives::
-
-\1f
-File: g77.info,  Node: Character Set,  Next: Lines,  Up: Characters Lines Sequence
-
-GNU Fortran Character Set
--------------------------
-
-   (Corresponds to Section 3.1 of ANSI X3.9-1978 FORTRAN 77.)
-
-   Letters include uppercase letters (the twenty-six characters of the
-English alphabet) and lowercase letters (their lowercase equivalent).
-Generally, lowercase letters may be used in place of uppercase letters,
-though in character and Hollerith constants, they are distinct.
-
-   Special characters include:
-
-   * Semicolon (`;')
-
-   * Exclamation point (`!')
-
-   * Double quote (`"')
-
-   * Backslash (`\')
-
-   * Question mark (`?')
-
-   * Hash mark (`#')
-
-   * Ampersand (`&')
-
-   * Percent sign (`%')
-
-   * Underscore (`_')
-
-   * Open angle (`<')
-
-   * Close angle (`>')
-
-   * The FORTRAN 77 special characters (<SPC>, `=', `+', `-', `*', `/',
-     `(', `)', `,', `.', `$', `'', and `:')
-
-   Note that this document refers to <SPC> as "space", while X3.9-1978
-FORTRAN 77 refers to it as "blank".
-