]> oss.titaniummirror.com Git - msp430-gcc.git/blobdiff - gcc/f/g77.info-2
Imported gcc-4.4.3
[msp430-gcc.git] / gcc / f / g77.info-2
diff --git a/gcc/f/g77.info-2 b/gcc/f/g77.info-2
deleted file mode 100644 (file)
index 837375f..0000000
+++ /dev/null
@@ -1,1234 +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: Getting Started,  Next: What is GNU Fortran?,  Prev: Funding GNU Fortran,  Up: Top
-
-Getting Started
-***************
-
-   If you don't need help getting started reading the portions of this
-manual that are most important to you, you should skip this portion of
-the manual.
-
-   If you are new to compilers, especially Fortran compilers, or new to
-how compilers are structured under UNIX and UNIX-like systems, you'll
-want to see *Note What is GNU Fortran?::.
-
-   If you are new to GNU compilers, or have used only one GNU compiler
-in the past and not had to delve into how it lets you manage various
-versions and configurations of `gcc', you should see *Note G77 and
-GCC::.
-
-   Everyone except experienced `g77' users should see *Note Invoking
-G77::.
-
-   If you're acquainted with previous versions of `g77', you should see
-*Note News About GNU Fortran: News.  Further, if you've actually used
-previous versions of `g77', especially if you've written or modified
-Fortran code to be compiled by previous versions of `g77', you should
-see *Note Changes::.
-
-   If you intend to write or otherwise compile code that is not already
-strictly conforming ANSI FORTRAN 77--and this is probably everyone--you
-should see *Note Language::.
-
-   If you run into trouble getting Fortran code to compile, link, run,
-or work properly, you might find answers if you see *Note Debugging and
-Interfacing::, see *Note Collected Fortran Wisdom::, and see *Note
-Trouble::.  You might also find that the problems you are encountering
-are bugs in `g77'--see *Note Bugs::, for information on reporting them,
-after reading the other material.
-
-   If you need further help with `g77', or with freely redistributable
-software in general, see *Note Service::.
-
-   If you would like to help the `g77' project, see *Note Funding GNU
-Fortran::, for information on helping financially, and see *Note
-Projects::, for information on helping in other ways.
-
-   If you're generally curious about the future of `g77', see *Note
-Projects::.  If you're curious about its past, see *Note Contributors::,
-and see *Note Funding GNU Fortran::.
-
-   To see a few of the questions maintainers of `g77' have, and that
-you might be able to answer, see *Note Open Questions::.
-
-\1f
-File: g77.info,  Node: What is GNU Fortran?,  Next: G77 and GCC,  Prev: Getting Started,  Up: Top
-
-What is GNU Fortran?
-********************
-
-   GNU Fortran, or `g77', is designed initially as a free replacement
-for, or alternative to, the UNIX `f77' command.  (Similarly, `gcc' is
-designed as a replacement for the UNIX `cc' command.)
-
-   `g77' also is designed to fit in well with the other fine GNU
-compilers and tools.
-
-   Sometimes these design goals conflict--in such cases, resolution
-often is made in favor of fitting in well with Project GNU.  These
-cases are usually identified in the appropriate sections of this manual.
-
-   As compilers, `g77', `gcc', and `f77' share the following
-characteristics:
-
-   * They read a user's program, stored in a file and containing
-     instructions written in the appropriate language (Fortran, C, and
-     so on).  This file contains "source code".
-
-   * They translate the user's program into instructions a computer can
-     carry out more quickly than it takes to translate the instructions
-     in the first place.  These instructions are called "machine
-     code"--code designed to be efficiently translated and processed by
-     a machine such as a computer.  Humans usually aren't as good
-     writing machine code as they are at writing Fortran or C, because
-     it is easy to make tiny mistakes writing machine code.  When
-     writing Fortran or C, it is easy to make big mistakes.
-
-   * They provide information in the generated machine code that can
-     make it easier to find bugs in the program (using a debugging
-     tool, called a "debugger", such as `gdb').
-
-   * They locate and gather machine code already generated to perform
-     actions requested by statements in the user's program.  This
-     machine code is organized into "libraries" and is located and
-     gathered during the "link" phase of the compilation process.
-     (Linking often is thought of as a separate step, because it can be
-     directly invoked via the `ld' command.  However, the `g77' and
-     `gcc' commands, as with most compiler commands, automatically
-     perform the linking step by calling on `ld' directly, unless asked
-     to not do so by the user.)
-
-   * They attempt to diagnose cases where the user's program contains
-     incorrect usages of the language.  The "diagnostics" produced by
-     the compiler indicate the problem and the location in the user's
-     source file where the problem was first noticed.  The user can use
-     this information to locate and fix the problem.  (Sometimes an
-     incorrect usage of the language leads to a situation where the
-     compiler can no longer make any sense of what follows--while a
-     human might be able to--and thus ends up complaining about many
-     "problems" it encounters that, in fact, stem from just one
-     problem, usually the first one reported.)
-
-   * They attempt to diagnose cases where the user's program contains a
-     correct usage of the language, but instructs the computer to do
-     something questionable.  These diagnostics often are in the form
-     of "warnings", instead of the "errors" that indicate incorrect
-     usage of the language.
-
-   How these actions are performed is generally under the control of
-the user.  Using command-line options, the user can specify how
-persnickety the compiler is to be regarding the program (whether to
-diagnose questionable usage of the language), how much time to spend
-making the generated machine code run faster, and so on.
-
-   `g77' consists of several components:
-
-   * A modified version of the `gcc' command, which also might be
-     installed as the system's `cc' command.  (In many cases, `cc'
-     refers to the system's "native" C compiler, which might be a
-     non-GNU compiler, or an older version of `gcc' considered more
-     stable or that is used to build the operating system kernel.)
-
-   * The `g77' command itself, which also might be installed as the
-     system's `f77' command.
-
-   * The `libg2c' run-time library.  This library contains the machine
-     code needed to support capabilities of the Fortran language that
-     are not directly provided by the machine code generated by the
-     `g77' compilation phase.
-
-     `libg2c' is just the unique name `g77' gives to its version of
-     `libf2c' to distinguish it from any copy of `libf2c' installed
-     from `f2c' (or versions of `g77' that built `libf2c' under that
-     same name) on the system.
-
-     The maintainer of `libf2c' currently is <dmg@bell-labs.com>.
-
-   * The compiler itself, internally named `f771'.
-
-     Note that `f771' does not generate machine code directly--it
-     generates "assembly code" that is a more readable form of machine
-     code, leaving the conversion to actual machine code to an
-     "assembler", usually named `as'.
-
-   `gcc' is often thought of as "the C compiler" only, but it does more
-than that.  Based on command-line options and the names given for files
-on the command line, `gcc' determines which actions to perform,
-including preprocessing, compiling (in a variety of possible
-languages), assembling, and linking.
-
-   For example, the command `gcc foo.c' "drives" the file `foo.c'
-through the preprocessor `cpp', then the C compiler (internally named
-`cc1'), then the assembler (usually `as'), then the linker (`ld'),
-producing an executable program named `a.out' (on UNIX systems).
-
-   As another example, the command `gcc foo.cc' would do much the same
-as `gcc foo.c', but instead of using the C compiler named `cc1', `gcc'
-would use the C++ compiler (named `cc1plus').
-
-   In a GNU Fortran installation, `gcc' recognizes Fortran source files
-by name just like it does C and C++ source files.  It knows to use the
-Fortran compiler named `f771', instead of `cc1' or `cc1plus', to
-compile Fortran files.
-
-   Non-Fortran-related operation of `gcc' is generally unaffected by
-installing the GNU Fortran version of `gcc'.  However, without the
-installed version of `gcc' being the GNU Fortran version, `gcc' will
-not be able to compile and link Fortran programs--and since `g77' uses
-`gcc' to do most of the actual work, neither will `g77'!
-
-   The `g77' command is essentially just a front-end for the `gcc'
-command.  Fortran users will normally use `g77' instead of `gcc',
-because `g77' knows how to specify the libraries needed to link with
-Fortran programs (`libg2c' and `lm').  `g77' can still compile and link
-programs and source files written in other languages, just like `gcc'.
-
-   The command `g77 -v' is a quick way to display lots of version
-information for the various programs used to compile a typical
-preprocessed Fortran source file--this produces much more output than
-`gcc -v' currently does.  (If it produces an error message near the end
-of the output--diagnostics from the linker, usually `ld'--you might
-have an out-of-date `libf2c' that improperly handles complex
-arithmetic.)  In the output of this command, the line beginning `GNU
-Fortran Front End' identifies the version number of GNU Fortran;
-immediately preceding that line is a line identifying the version of
-`gcc' with which that version of `g77' was built.
-
-   The `libf2c' library is distributed with GNU Fortran for the
-convenience of its users, but is not part of GNU Fortran.  It contains
-the procedures needed by Fortran programs while they are running.
-
-   For example, while code generated by `g77' is likely to do
-additions, subtractions, and multiplications "in line"--in the actual
-compiled code--it is not likely to do trigonometric functions this way.
-
-   Instead, operations like trigonometric functions are compiled by the
-`f771' compiler (invoked by `g77' when compiling Fortran code) into
-machine code that, when run, calls on functions in `libg2c', so
-`libg2c' must be linked with almost every useful program having any
-component compiled by GNU Fortran.  (As mentioned above, the `g77'
-command takes care of all this for you.)
-
-   The `f771' program represents most of what is unique to GNU Fortran.
-While much of the `libg2c' component comes from the `libf2c' component
-of `f2c', a free Fortran-to-C converter distributed by Bellcore (AT&T),
-plus `libU77', provided by Dave Love, and the `g77' command is just a
-small front-end to `gcc', `f771' is a combination of two rather large
-chunks of code.
-
-   One chunk is the so-called "GNU Back End", or GBE, which knows how
-to generate fast code for a wide variety of processors.  The same GBE
-is used by the C, C++, and Fortran compiler programs `cc1', `cc1plus',
-and `f771', plus others.  Often the GBE is referred to as the "gcc back
-end" or even just "gcc"--in this manual, the term GBE is used whenever
-the distinction is important.
-
-   The other chunk of `f771' is the majority of what is unique about
-GNU Fortran--the code that knows how to interpret Fortran programs to
-determine what they are intending to do, and then communicate that
-knowledge to the GBE for actual compilation of those programs.  This
-chunk is called the "Fortran Front End" (FFE).  The `cc1' and `cc1plus'
-programs have their own front ends, for the C and C++ languages,
-respectively.  These fronts ends are responsible for diagnosing
-incorrect usage of their respective languages by the programs the
-process, and are responsible for most of the warnings about
-questionable constructs as well.  (The GBE handles producing some
-warnings, like those concerning possible references to undefined
-variables.)
-
-   Because so much is shared among the compilers for various languages,
-much of the behavior and many of the user-selectable options for these
-compilers are similar.  For example, diagnostics (error messages and
-warnings) are similar in appearance; command-line options like `-Wall'
-have generally similar effects; and the quality of generated code (in
-terms of speed and size) is roughly similar (since that work is done by
-the shared GBE).
-
-\1f
-File: g77.info,  Node: G77 and GCC,  Next: Invoking G77,  Prev: What is GNU Fortran?,  Up: Top
-
-Compile Fortran, C, or Other Programs
-*************************************
-
-   A GNU Fortran installation includes a modified version of the `gcc'
-command.
-
-   In a non-Fortran installation, `gcc' recognizes C, C++, and
-Objective-C source files.
-
-   In a GNU Fortran installation, `gcc' also recognizes Fortran source
-files and accepts Fortran-specific command-line options, plus some
-command-line options that are designed to cater to Fortran users but
-apply to other languages as well.
-
-   *Note Compile C; C++; Objective-C; Ada; Fortran; or Java: (gcc)G++
-and GCC, for information on the way different languages are handled by
-the GNU CC compiler (`gcc').
-
-   Also provided as part of GNU Fortran is the `g77' command.  The
-`g77' command is designed to make compiling and linking Fortran
-programs somewhat easier than when using the `gcc' command for these
-tasks.  It does this by analyzing the command line somewhat and
-changing it appropriately before submitting it to the `gcc' command.
-
-   Use the `-v' option with `g77' to see what is going on--the first
-line of output is the invocation of the `gcc' command.
-
-\1f
-File: g77.info,  Node: Invoking G77,  Next: News,  Prev: G77 and GCC,  Up: Top
-
-GNU Fortran Command Options
-***************************
-
-   The `g77' command supports all the options supported by the `gcc'
-command.  *Note GCC Command Options: (gcc)Invoking GCC, for information
-on the non-Fortran-specific aspects of the `gcc' command (and,
-therefore, the `g77' command).
-
-   All `gcc' and `g77' options are accepted both by `g77' and by `gcc'
-(as well as any other drivers built at the same time, such as `g++'),
-since adding `g77' to the `gcc' distribution enables acceptance of
-`g77' options by all of the relevant drivers.
-
-   In some cases, options have positive and negative forms; the
-negative form of `-ffoo' would be `-fno-foo'.  This manual documents
-only one of these two forms, whichever one is not the default.
-
-* Menu:
-
-* Option Summary::      Brief list of all `g77' options,
-                        without explanations.
-* Overall Options::     Controlling the kind of output:
-                        an executable, object files, assembler files,
-                        or preprocessed source.
-* Shorthand Options::   Options that are shorthand for other options.
-* Fortran Dialect Options::  Controlling the variant of Fortran language
-                             compiled.
-* Warning Options::     How picky should the compiler be?
-* Debugging Options::   Symbol tables, measurements, and debugging dumps.
-* Optimize Options::    How much optimization?
-* Preprocessor Options:: Controlling header files and macro definitions.
-                         Also, getting dependency information for Make.
-* Directory Options::   Where to find header files and libraries.
-                        Where to find the compiler executable files.
-* Code Gen Options::    Specifying conventions for function calls, data layout
-                        and register usage.
-* Environment Variables:: Env vars that affect GNU Fortran.
-
-\1f
-File: g77.info,  Node: Option Summary,  Next: Overall Options,  Up: Invoking G77
-
-Option Summary
-==============
-
-   Here is a summary of all the options specific to GNU Fortran, grouped
-by type.  Explanations are in the following sections.
-
-_Overall Options_
-     *Note Options Controlling the Kind of Output: Overall Options.
-          -fversion  -fset-g77-defaults  -fno-silent
-
-_Shorthand Options_
-     *Note Shorthand Options::.
-          -ff66  -fno-f66  -ff77  -fno-f77  -fno-ugly
-
-_Fortran Language Options_
-     *Note Options Controlling Fortran Dialect: Fortran Dialect Options.
-          -ffree-form  -fno-fixed-form  -ff90 
-          -fvxt  -fdollar-ok  -fno-backslash 
-          -fno-ugly-args  -fno-ugly-assign  -fno-ugly-assumed 
-          -fugly-comma  -fugly-complex  -fugly-init  -fugly-logint 
-          -fonetrip  -ftypeless-boz 
-          -fintrin-case-initcap  -fintrin-case-upper 
-          -fintrin-case-lower  -fintrin-case-any 
-          -fmatch-case-initcap  -fmatch-case-upper 
-          -fmatch-case-lower  -fmatch-case-any 
-          -fsource-case-upper  -fsource-case-lower 
-          -fsource-case-preserve 
-          -fsymbol-case-initcap  -fsymbol-case-upper 
-          -fsymbol-case-lower  -fsymbol-case-any 
-          -fcase-strict-upper  -fcase-strict-lower 
-          -fcase-initcap  -fcase-upper  -fcase-lower  -fcase-preserve 
-          -ff2c-intrinsics-delete  -ff2c-intrinsics-hide 
-          -ff2c-intrinsics-disable  -ff2c-intrinsics-enable 
-          -fbadu77-intrinsics-delete  -fbadu77-intrinsics-hide 
-          -fbadu77-intrinsics-disable  -fbadu77-intrinsics-enable 
-          -ff90-intrinsics-delete  -ff90-intrinsics-hide 
-          -ff90-intrinsics-disable  -ff90-intrinsics-enable 
-          -fgnu-intrinsics-delete  -fgnu-intrinsics-hide 
-          -fgnu-intrinsics-disable  -fgnu-intrinsics-enable 
-          -fmil-intrinsics-delete  -fmil-intrinsics-hide 
-          -fmil-intrinsics-disable  -fmil-intrinsics-enable 
-          -funix-intrinsics-delete  -funix-intrinsics-hide 
-          -funix-intrinsics-disable  -funix-intrinsics-enable 
-          -fvxt-intrinsics-delete  -fvxt-intrinsics-hide 
-          -fvxt-intrinsics-disable  -fvxt-intrinsics-enable 
-          -ffixed-line-length-N  -ffixed-line-length-none
-
-_Warning Options_
-     *Note Options to Request or Suppress Warnings: Warning Options.
-          -fsyntax-only  -pedantic  -pedantic-errors  -fpedantic 
-          -w  -Wno-globals  -Wimplicit  -Wunused  -Wuninitialized 
-          -Wall  -Wsurprising 
-          -Werror  -W
-
-_Debugging Options_
-     *Note Options for Debugging Your Program or GCC: Debugging Options.
-          -g
-
-_Optimization Options_
-     *Note Options that Control Optimization: Optimize Options.
-          -malign-double 
-          -ffloat-store  -fforce-mem  -fforce-addr  -fno-inline 
-          -ffast-math  -fstrength-reduce  -frerun-cse-after-loop 
-          -funsafe-math-optimizations -fno-trapping-math 
-          -fexpensive-optimizations  -fdelayed-branch 
-          -fschedule-insns  -fschedule-insn2  -fcaller-saves 
-          -funroll-loops  -funroll-all-loops 
-          -fno-move-all-movables  -fno-reduce-all-givs 
-          -fno-rerun-loop-opt
-
-_Directory Options_
-     *Note Options for Directory Search: Directory Options.
-          -IDIR  -I-
-
-_Code Generation Options_
-     *Note Options for Code Generation Conventions: Code Gen Options.
-          -fno-automatic  -finit-local-zero  -fno-f2c 
-          -ff2c-library  -fno-underscoring  -fno-ident 
-          -fpcc-struct-return  -freg-struct-return 
-          -fshort-double  -fno-common  -fpack-struct 
-          -fzeros  -fno-second-underscore 
-          -femulate-complex 
-          -falias-check  -fargument-alias 
-          -fargument-noalias  -fno-argument-noalias-global 
-          -fno-globals  -fflatten-arrays 
-          -fbounds-check  -ffortran-bounds-check
-
-
-* Menu:
-
-* Overall Options::     Controlling the kind of output:
-                        an executable, object files, assembler files,
-                        or preprocessed source.
-* Shorthand Options::   Options that are shorthand for other options.
-* Fortran Dialect Options::  Controlling the variant of Fortran language
-                             compiled.
-* Warning Options::     How picky should the compiler be?
-* Debugging Options::   Symbol tables, measurements, and debugging dumps.
-* Optimize Options::    How much optimization?
-* Preprocessor Options:: Controlling header files and macro definitions.
-                         Also, getting dependency information for Make.
-* Directory Options::   Where to find header files and libraries.
-                        Where to find the compiler executable files.
-* Code Gen Options::    Specifying conventions for function calls, data layout
-                        and register usage.
-
-\1f
-File: g77.info,  Node: Overall Options,  Next: Shorthand Options,  Prev: Option Summary,  Up: Invoking G77
-
-Options Controlling the Kind of Output
-======================================
-
-   Compilation can involve as many as four stages: preprocessing, code
-generation (often what is really meant by the term "compilation"),
-assembly, and linking, always in that order.  The first three stages
-apply to an individual source file, and end by producing an object
-file; linking combines all the object files (those newly compiled, and
-those specified as input) into an executable file.
-
-   For any given input file, the file name suffix determines what kind
-of program is contained in the file--that is, the language in which the
-program is written is generally indicated by the suffix.  Suffixes
-specific to GNU Fortran are listed below.  *Note Options Controlling
-the Kind of Output: (gcc)Overall Options, for information on suffixes
-recognized by GNU CC.
-
-`FILE.f'
-
-`FILE.for'
-
-`FILE.FOR'
-     Fortran source code that should not be preprocessed.
-
-     Such source code cannot contain any preprocessor directives, such
-     as `#include', `#define', `#if', and so on.
-
-     You can force `.f' files to be preprocessed by `cpp' by using `-x
-     f77-cpp-input'.  *Note LEX::.
-
-`FILE.F'
-
-`FILE.fpp'
-
-`FILE.FPP'
-     Fortran source code that must be preprocessed (by the C
-     preprocessor `cpp', which is part of GNU CC).
-
-     Note that preprocessing is not extended to the contents of files
-     included by the `INCLUDE' directive--the `#include' preprocessor
-     directive must be used instead.
-
-`FILE.r'
-     Ratfor source code, which must be preprocessed by the `ratfor'
-     command, which is available separately (as it is not yet part of
-     the GNU Fortran distribution).  One version in Fortran, adapted
-     for use with `g77' is at `ftp://members.aol.com/n8tm/rat7.uue' (of
-     uncertain copyright status).  Another, public domain version in C
-     is at `http://sepwww.stanford.edu/sep/prof/ratfor.shar.2'.
-
-   UNIX users typically use the `FILE.f' and `FILE.F' nomenclature.
-Users of other operating systems, especially those that cannot
-distinguish upper-case letters from lower-case letters in their file
-names, typically use the `FILE.for' and `FILE.fpp' nomenclature.
-
-   Use of the preprocessor `cpp' allows use of C-like constructs such
-as `#define' and `#include', but can lead to unexpected, even mistaken,
-results due to Fortran's source file format.  It is recommended that
-use of the C preprocessor be limited to `#include' and, in conjunction
-with `#define', only `#if' and related directives, thus avoiding
-in-line macro expansion entirely.  This recommendation applies
-especially when using the traditional fixed source form.  With free
-source form, fewer unexpected transformations are likely to happen, but
-use of constructs such as Hollerith and character constants can
-nevertheless present problems, especially when these are continued
-across multiple source lines.  These problems result, primarily, from
-differences between the way such constants are interpreted by the C
-preprocessor and by a Fortran compiler.
-
-   Another example of a problem that results from using the C
-preprocessor is that a Fortran comment line that happens to contain any
-characters "interesting" to the C preprocessor, such as a backslash at
-the end of the line, is not recognized by the preprocessor as a comment
-line, so instead of being passed through "raw", the line is edited
-according to the rules for the preprocessor.  For example, the
-backslash at the end of the line is removed, along with the subsequent
-newline, resulting in the next line being effectively commented
-out--unfortunate if that line is a non-comment line of important code!
-
-   _Note:_ The `-traditional' and `-undef' flags are supplied to `cpp'
-by default, to help avoid unpleasant surprises.  *Note Options
-Controlling the Preprocessor: (gcc)Preprocessor Options.  This means
-that ANSI C preprocessor features (such as the `#' operator) aren't
-available, and only variables in the C reserved namespace (generally,
-names with a leading underscore) are liable to substitution by C
-predefines.  Thus, if you want to do system-specific tests, use, for
-example, `#ifdef __linux__' rather than `#ifdef linux'.  Use the `-v'
-option to see exactly how the preprocessor is invoked.
-
-   Unfortunately, the `-traditional' flag will not avoid an error from
-anything that `cpp' sees as an unterminated C comment, such as:
-     C Some Fortran compilers accept /* as starting
-     C an inline comment.
-   *Note Trailing Comment::.
-
-   The following options that affect overall processing are recognized
-by the `g77' and `gcc' commands in a GNU Fortran installation:
-
-`-fversion'
-     Ensure that the `g77' version of the compiler phase is reported,
-     if run, and, starting in `egcs' version 1.1, that internal
-     consistency checks in the `f771' program are run.
-
-     This option is supplied automatically when `-v' or `--verbose' is
-     specified as a command-line option for `g77' or `gcc' and when the
-     resulting commands compile Fortran source files.
-
-     In GCC 3.1, this is changed back to the behaviour `gcc' displays
-     for `.c' files.
-
-`-fset-g77-defaults'
-     _Version info:_ This option was obsolete as of `egcs' version 1.1.
-     The effect is instead achieved by the `lang_init_options' routine
-     in `gcc/gcc/f/com.c'.
-
-     Set up whatever `gcc' options are to apply to Fortran
-     compilations, and avoid running internal consistency checks that
-     might take some time.
-
-     This option is supplied automatically when compiling Fortran code
-     via the `g77' or `gcc' command.  The description of this option is
-     provided so that users seeing it in the output of, say, `g77 -v'
-     understand why it is there.
-
-     Also, developers who run `f771' directly might want to specify it
-     by hand to get the same defaults as they would running `f771' via
-     `g77' or `gcc' However, such developers should, after linking a
-     new `f771' executable, invoke it without this option once, e.g.
-     via `./f771 -quiet < /dev/null', to ensure that they have not
-     introduced any internal inconsistencies (such as in the table of
-     intrinsics) before proceeding--`g77' will crash with a diagnostic
-     if it detects an inconsistency.
-
-`-fno-silent'
-     Print (to `stderr') the names of the program units as they are
-     compiled, in a form similar to that used by popular UNIX `f77'
-     implementations and `f2c'
-
-   *Note Options Controlling the Kind of Output: (gcc)Overall Options,
-for information on more options that control the overall operation of
-the `gcc' command (and, by extension, the `g77' command).
-
-\1f
-File: g77.info,  Node: Shorthand Options,  Next: Fortran Dialect Options,  Prev: Overall Options,  Up: Invoking G77
-
-Shorthand Options
-=================
-
-   The following options serve as "shorthand" for other options
-accepted by the compiler:
-
-`-fugly'
-     _Note:_ This option is no longer supported.  The information,
-     below, is provided to aid in the conversion of old scripts.
-
-     Specify that certain "ugly" constructs are to be quietly accepted.
-     Same as:
-
-          -fugly-args -fugly-assign -fugly-assumed
-          -fugly-comma -fugly-complex -fugly-init
-          -fugly-logint
-
-     These constructs are considered inappropriate to use in new or
-     well-maintained portable Fortran code, but widely used in old code.
-     *Note Distensions::, for more information.
-
-`-fno-ugly'
-     Specify that all "ugly" constructs are to be noisily rejected.
-     Same as:
-
-          -fno-ugly-args -fno-ugly-assign -fno-ugly-assumed
-          -fno-ugly-comma -fno-ugly-complex -fno-ugly-init
-          -fno-ugly-logint
-
-     *Note Distensions::, for more information.
-
-`-ff66'
-     Specify that the program is written in idiomatic FORTRAN 66.  Same
-     as `-fonetrip -fugly-assumed'.
-
-     The `-fno-f66' option is the inverse of `-ff66'.  As such, it is
-     the same as `-fno-onetrip -fno-ugly-assumed'.
-
-     The meaning of this option is likely to be refined as future
-     versions of `g77' provide more compatibility with other existing
-     and obsolete Fortran implementations.
-
-`-ff77'
-     Specify that the program is written in idiomatic UNIX FORTRAN 77
-     and/or the dialect accepted by the `f2c' product.  Same as
-     `-fbackslash -fno-typeless-boz'.
-
-     The meaning of this option is likely to be refined as future
-     versions of `g77' provide more compatibility with other existing
-     and obsolete Fortran implementations.
-
-`-fno-f77'
-     The `-fno-f77' option is _not_ the inverse of `-ff77'.  It
-     specifies that the program is not written in idiomatic UNIX
-     FORTRAN 77 or `f2c' but in a more widely portable dialect.
-     `-fno-f77' is the same as `-fno-backslash'.
-
-     The meaning of this option is likely to be refined as future
-     versions of `g77' provide more compatibility with other existing
-     and obsolete Fortran implementations.
-
-\1f
-File: g77.info,  Node: Fortran Dialect Options,  Next: Warning Options,  Prev: Shorthand Options,  Up: Invoking G77
-
-Options Controlling Fortran Dialect
-===================================
-
-   The following options control the dialect of Fortran that the
-compiler accepts:
-
-`-ffree-form'
-
-`-fno-fixed-form'
-     Specify that the source file is written in free form (introduced
-     in Fortran 90) instead of the more-traditional fixed form.
-
-`-ff90'
-     Allow certain Fortran-90 constructs.
-
-     This option controls whether certain Fortran 90 constructs are
-     recognized.  (Other Fortran 90 constructs might or might not be
-     recognized depending on other options such as `-fvxt',
-     `-ff90-intrinsics-enable', and the current level of support for
-     Fortran 90.)
-
-     *Note Fortran 90::, for more information.
-
-`-fvxt'
-     Specify the treatment of certain constructs that have different
-     meanings depending on whether the code is written in GNU Fortran
-     (based on FORTRAN 77 and akin to Fortran 90) or VXT Fortran (more
-     like VAX FORTRAN).
-
-     The default is `-fno-vxt'.  `-fvxt' specifies that the VXT Fortran
-     interpretations for those constructs are to be chosen.
-
-     *Note VXT Fortran::, for more information.
-
-`-fdollar-ok'
-     Allow `$' as a valid character in a symbol name.
-
-`-fno-backslash'
-     Specify that `\' is not to be specially interpreted in character
-     and Hollerith constants a la C and many UNIX Fortran compilers.
-
-     For example, with `-fbackslash' in effect, `A\nB' specifies three
-     characters, with the second one being newline.  With
-     `-fno-backslash', it specifies four characters, `A', `\', `n', and
-     `B'.
-
-     Note that `g77' implements a fairly general form of backslash
-     processing that is incompatible with the narrower forms supported
-     by some other compilers.  For example, `'A\003B'' is a
-     three-character string in `g77' whereas other compilers that
-     support backslash might not support the three-octal-digit form,
-     and thus treat that string as longer than three characters.
-
-     *Note Backslash in Constants::, for information on why
-     `-fbackslash' is the default instead of `-fno-backslash'.
-
-`-fno-ugly-args'
-     Disallow passing Hollerith and typeless constants as actual
-     arguments (for example, `CALL FOO(4HABCD)').
-
-     *Note Ugly Implicit Argument Conversion::, for more information.
-
-`-fugly-assign'
-     Use the same storage for a given variable regardless of whether it
-     is used to hold an assigned-statement label (as in `ASSIGN 10 TO
-     I') or used to hold numeric data (as in `I = 3').
-
-     *Note Ugly Assigned Labels::, for more information.
-
-`-fugly-assumed'
-     Assume any dummy array with a final dimension specified as `1' is
-     really an assumed-size array, as if `*' had been specified for the
-     final dimension instead of `1'.
-
-     For example, `DIMENSION X(1)' is treated as if it had read
-     `DIMENSION X(*)'.
-
-     *Note Ugly Assumed-Size Arrays::, for more information.
-
-`-fugly-comma'
-     In an external-procedure invocation, treat a trailing comma in the
-     argument list as specification of a trailing null argument, and
-     treat an empty argument list as specification of a single null
-     argument.
-
-     For example, `CALL FOO(,)' is treated as `CALL FOO(%VAL(0),
-     %VAL(0))'.  That is, _two_ null arguments are specified by the
-     procedure call when `-fugly-comma' is in force.  And `F = FUNC()'
-     is treated as `F = FUNC(%VAL(0))'.
-
-     The default behavior, `-fno-ugly-comma', is to ignore a single
-     trailing comma in an argument list.  So, by default, `CALL
-     FOO(X,)' is treated exactly the same as `CALL FOO(X)'.
-
-     *Note Ugly Null Arguments::, for more information.
-
-`-fugly-complex'
-     Do not complain about `REAL(EXPR)' or `AIMAG(EXPR)' when EXPR is a
-     `COMPLEX' type other than `COMPLEX(KIND=1)'--usually this is used
-     to permit `COMPLEX(KIND=2)' (`DOUBLE COMPLEX') operands.
-
-     The `-ff90' option controls the interpretation of this construct.
-
-     *Note Ugly Complex Part Extraction::, for more information.
-
-`-fno-ugly-init'
-     Disallow use of Hollerith and typeless constants as initial values
-     (in `PARAMETER' and `DATA' statements), and use of character
-     constants to initialize numeric types and vice versa.
-
-     For example, `DATA I/'F'/, CHRVAR/65/, J/4HABCD/' is disallowed by
-     `-fno-ugly-init'.
-
-     *Note Ugly Conversion of Initializers::, for more information.
-
-`-fugly-logint'
-     Treat `INTEGER' and `LOGICAL' variables and expressions as
-     potential stand-ins for each other.
-
-     For example, automatic conversion between `INTEGER' and `LOGICAL'
-     is enabled, for many contexts, via this option.
-
-     *Note Ugly Integer Conversions::, for more information.
-
-`-fonetrip'
-     Executable iterative `DO' loops are to be executed at least once
-     each time they are reached.
-
-     ANSI FORTRAN 77 and more recent versions of the Fortran standard
-     specify that the body of an iterative `DO' loop is not executed if
-     the number of iterations calculated from the parameters of the
-     loop is less than 1.  (For example, `DO 10 I = 1, 0'.)  Such a
-     loop is called a "zero-trip loop".
-
-     Prior to ANSI FORTRAN 77, many compilers implemented `DO' loops
-     such that the body of a loop would be executed at least once, even
-     if the iteration count was zero.  Fortran code written assuming
-     this behavior is said to require "one-trip loops".  For example,
-     some code written to the FORTRAN 66 standard expects this behavior
-     from its `DO' loops, although that standard did not specify this
-     behavior.
-
-     The `-fonetrip' option specifies that the source file(s) being
-     compiled require one-trip loops.
-
-     This option affects only those loops specified by the (iterative)
-     `DO' statement and by implied-`DO' lists in I/O statements.  Loops
-     specified by implied-`DO' lists in `DATA' and specification
-     (non-executable) statements are not affected.
-
-`-ftypeless-boz'
-     Specifies that prefix-radix non-decimal constants, such as
-     `Z'ABCD'', are typeless instead of `INTEGER(KIND=1)'.
-
-     You can test for yourself whether a particular compiler treats the
-     prefix form as `INTEGER(KIND=1)' or typeless by running the
-     following program:
-
-          EQUIVALENCE (I, R)
-          R = Z'ABCD1234'
-          J = Z'ABCD1234'
-          IF (J .EQ. I) PRINT *, 'Prefix form is TYPELESS'
-          IF (J .NE. I) PRINT *, 'Prefix form is INTEGER'
-          END
-
-     Reports indicate that many compilers process this form as
-     `INTEGER(KIND=1)', though a few as typeless, and at least one
-     based on a command-line option specifying some kind of
-     compatibility.
-
-`-fintrin-case-initcap'
-
-`-fintrin-case-upper'
-
-`-fintrin-case-lower'
-
-`-fintrin-case-any'
-     Specify expected case for intrinsic names.  `-fintrin-case-lower'
-     is the default.
-
-`-fmatch-case-initcap'
-
-`-fmatch-case-upper'
-
-`-fmatch-case-lower'
-
-`-fmatch-case-any'
-     Specify expected case for keywords.  `-fmatch-case-lower' is the
-     default.
-
-`-fsource-case-upper'
-
-`-fsource-case-lower'
-
-`-fsource-case-preserve'
-     Specify whether source text other than character and Hollerith
-     constants is to be translated to uppercase, to lowercase, or
-     preserved as is.  `-fsource-case-lower' is the default.
-
-`-fsymbol-case-initcap'
-
-`-fsymbol-case-upper'
-
-`-fsymbol-case-lower'
-
-`-fsymbol-case-any'
-     Specify valid cases for user-defined symbol names.
-     `-fsymbol-case-any' is the default.
-
-`-fcase-strict-upper'
-     Same as `-fintrin-case-upper -fmatch-case-upper
-     -fsource-case-preserve -fsymbol-case-upper'.  (Requires all
-     pertinent source to be in uppercase.)
-
-`-fcase-strict-lower'
-     Same as `-fintrin-case-lower -fmatch-case-lower
-     -fsource-case-preserve -fsymbol-case-lower'.  (Requires all
-     pertinent source to be in lowercase.)
-
-`-fcase-initcap'
-     Same as `-fintrin-case-initcap -fmatch-case-initcap
-     -fsource-case-preserve -fsymbol-case-initcap'.  (Requires all
-     pertinent source to be in initial capitals, as in `Print
-     *,SqRt(Value)'.)
-
-`-fcase-upper'
-     Same as `-fintrin-case-any -fmatch-case-any -fsource-case-upper
-     -fsymbol-case-any'.  (Maps all pertinent source to uppercase.)
-
-`-fcase-lower'
-     Same as `-fintrin-case-any -fmatch-case-any -fsource-case-lower
-     -fsymbol-case-any'.  (Maps all pertinent source to lowercase.)
-
-`-fcase-preserve'
-     Same as `-fintrin-case-any -fmatch-case-any -fsource-case-preserve
-     -fsymbol-case-any'.  (Preserves all case in user-defined symbols,
-     while allowing any-case matching of intrinsics and keywords.  For
-     example, `call Foo(i,I)' would pass two _different_ variables
-     named `i' and `I' to a procedure named `Foo'.)
-
-`-fbadu77-intrinsics-delete'
-
-`-fbadu77-intrinsics-hide'
-
-`-fbadu77-intrinsics-disable'
-
-`-fbadu77-intrinsics-enable'
-     Specify status of UNIX intrinsics having inappropriate forms.
-     `-fbadu77-intrinsics-enable' is the default.  *Note Intrinsic
-     Groups::.
-
-`-ff2c-intrinsics-delete'
-
-`-ff2c-intrinsics-hide'
-
-`-ff2c-intrinsics-disable'
-
-`-ff2c-intrinsics-enable'
-     Specify status of f2c-specific intrinsics.
-     `-ff2c-intrinsics-enable' is the default.  *Note Intrinsic
-     Groups::.
-
-`-ff90-intrinsics-delete'
-
-`-ff90-intrinsics-hide'
-
-`-ff90-intrinsics-disable'
-
-`-ff90-intrinsics-enable'
-     Specify status of F90-specific intrinsics.
-     `-ff90-intrinsics-enable' is the default.  *Note Intrinsic
-     Groups::.
-
-`-fgnu-intrinsics-delete'
-
-`-fgnu-intrinsics-hide'
-
-`-fgnu-intrinsics-disable'
-
-`-fgnu-intrinsics-enable'
-     Specify status of Digital's COMPLEX-related intrinsics.
-     `-fgnu-intrinsics-enable' is the default.  *Note Intrinsic
-     Groups::.
-
-`-fmil-intrinsics-delete'
-
-`-fmil-intrinsics-hide'
-
-`-fmil-intrinsics-disable'
-
-`-fmil-intrinsics-enable'
-     Specify status of MIL-STD-1753-specific intrinsics.
-     `-fmil-intrinsics-enable' is the default.  *Note Intrinsic
-     Groups::.
-
-`-funix-intrinsics-delete'
-
-`-funix-intrinsics-hide'
-
-`-funix-intrinsics-disable'
-
-`-funix-intrinsics-enable'
-     Specify status of UNIX intrinsics.  `-funix-intrinsics-enable' is
-     the default.  *Note Intrinsic Groups::.
-
-`-fvxt-intrinsics-delete'
-
-`-fvxt-intrinsics-hide'
-
-`-fvxt-intrinsics-disable'
-
-`-fvxt-intrinsics-enable'
-     Specify status of VXT intrinsics.  `-fvxt-intrinsics-enable' is
-     the default.  *Note Intrinsic Groups::.
-
-`-ffixed-line-length-N'
-     Set column after which characters are ignored in typical fixed-form
-     lines in the source file, and through which spaces are assumed (as
-     if padded to that length) after the ends of short fixed-form lines.
-
-     Popular values for N include 72 (the standard and the default), 80
-     (card image), and 132 (corresponds to "extended-source" options in
-     some popular compilers).  N may be `none', meaning that the entire
-     line is meaningful and that continued character constants never
-     have implicit spaces appended to them to fill out the line.
-     `-ffixed-line-length-0' means the same thing as
-     `-ffixed-line-length-none'.
-
-     *Note Source Form::, for more information.
-
-\1f
-File: g77.info,  Node: Warning Options,  Next: Debugging Options,  Prev: Fortran Dialect Options,  Up: Invoking G77
-
-Options to Request or Suppress Warnings
-=======================================
-
-   Warnings are diagnostic messages that report constructions which are
-not inherently erroneous but which are risky or suggest there might
-have been an error.
-
-   You can request many specific warnings with options beginning `-W',
-for example `-Wimplicit' to request warnings on implicit declarations.
-Each of these specific warning options also has a negative form
-beginning `-Wno-' to turn off warnings; for example, `-Wno-implicit'.
-This manual lists only one of the two forms, whichever is not the
-default.
-
-   These options control the amount and kinds of warnings produced by
-GNU Fortran:
-
-`-fsyntax-only'
-     Check the code for syntax errors, but don't do anything beyond
-     that.
-
-`-pedantic'
-     Issue warnings for uses of extensions to ANSI FORTRAN 77.
-     `-pedantic' also applies to C-language constructs where they occur
-     in GNU Fortran source files, such as use of `\e' in a character
-     constant within a directive like `#include'.
-
-     Valid ANSI FORTRAN 77 programs should compile properly with or
-     without this option.  However, without this option, certain GNU
-     extensions and traditional Fortran features are supported as well.
-     With this option, many of them are rejected.
-
-     Some users try to use `-pedantic' to check programs for strict ANSI
-     conformance.  They soon find that it does not do quite what they
-     want--it finds some non-ANSI practices, but not all.  However,
-     improvements to `g77' in this area are welcome.
-
-`-pedantic-errors'
-     Like `-pedantic', except that errors are produced rather than
-     warnings.
-
-`-fpedantic'
-     Like `-pedantic', but applies only to Fortran constructs.
-
-`-w'
-     Inhibit all warning messages.
-
-`-Wno-globals'
-     Inhibit warnings about use of a name as both a global name (a
-     subroutine, function, or block data program unit, or a common
-     block) and implicitly as the name of an intrinsic in a source file.
-
-     Also inhibit warnings about inconsistent invocations and/or
-     definitions of global procedures (function and subroutines).  Such
-     inconsistencies include different numbers of arguments and
-     different types of arguments.
-
-`-Wimplicit'
-     Warn whenever a variable, array, or function is implicitly
-     declared.  Has an effect similar to using the `IMPLICIT NONE'
-     statement in every program unit.  (Some Fortran compilers provide
-     this feature by an option named `-u' or `/WARNINGS=DECLARATIONS'.)
-
-`-Wunused'
-     Warn whenever a variable is unused aside from its declaration.
-
-`-Wuninitialized'
-     Warn whenever an automatic variable is used without first being
-     initialized.
-
-     These warnings are possible only in optimizing compilation,
-     because they require data-flow information that is computed only
-     when optimizing.  If you don't specify `-O', you simply won't get
-     these warnings.
-
-     These warnings occur only for variables that are candidates for
-     register allocation.  Therefore, they do not occur for a variable
-     whose address is taken, or whose size is other than 1, 2, 4 or 8
-     bytes.  Also, they do not occur for arrays, even when they are in
-     registers.
-
-     Note that there might be no warning about a variable that is used
-     only to compute a value that itself is never used, because such
-     computations may be deleted by data-flow analysis before the
-     warnings are printed.
-
-     These warnings are made optional because GNU Fortran is not smart
-     enough to see all the reasons why the code might be correct
-     despite appearing to have an error.  Here is one example of how
-     this can happen:
-
-          SUBROUTINE DISPAT(J)
-          IF (J.EQ.1) I=1
-          IF (J.EQ.2) I=4
-          IF (J.EQ.3) I=5
-          CALL FOO(I)
-          END
-
-     If the value of `J' is always 1, 2 or 3, then `I' is always
-     initialized, but GNU Fortran doesn't know this.  Here is another
-     common case:
-
-          SUBROUTINE MAYBE(FLAG)
-          LOGICAL FLAG
-          IF (FLAG) VALUE = 9.4
-          ...
-          IF (FLAG) PRINT *, VALUE
-          END
-
-     This has no bug because `VALUE' is used only if it is set.
-
-`-Wall'
-     The `-Wunused' and `-Wuninitialized' options combined.  These are
-     all the options which pertain to usage that we recommend avoiding
-     and that we believe is easy to avoid.  (As more warnings are added
-     to `g77' some might be added to the list enabled by `-Wall'.)
-
-   The remaining `-W...' options are not implied by `-Wall' because
-they warn about constructions that we consider reasonable to use, on
-occasion, in clean programs.
-
-`-Wsurprising'
-     Warn about "suspicious" constructs that are interpreted by the
-     compiler in a way that might well be surprising to someone reading
-     the code.  These differences can result in subtle,
-     compiler-dependent (even machine-dependent) behavioral differences.
-     The constructs warned about include:
-
-        * Expressions having two arithmetic operators in a row, such as
-          `X*-Y'.  Such a construct is nonstandard, and can produce
-          unexpected results in more complicated situations such as
-          `X**-Y*Z'.  `g77' along with many other compilers, interprets
-          this example differently than many programmers, and a few
-          other compilers.  Specifically, `g77' interprets `X**-Y*Z' as
-          `(X**(-Y))*Z', while others might think it should be
-          interpreted as `X**(-(Y*Z))'.
-
-          A revealing example is the constant expression `2**-2*1.',
-          which `g77' evaluates to .25, while others might evaluate it
-          to 0., the difference resulting from the way precedence
-          affects type promotion.
-
-          (The `-fpedantic' option also warns about expressions having
-          two arithmetic operators in a row.)
-
-        * Expressions with a unary minus followed by an operand and then
-          a binary operator other than plus or minus.  For example,
-          `-2**2' produces a warning, because the precedence is
-          `-(2**2)', yielding -4, not `(-2)**2', which yields 4, and
-          which might represent what a programmer expects.
-
-          An example of an expression producing different results in a
-          surprising way is `-I*S', where I holds the value
-          `-2147483648' and S holds `0.5'.  On many systems, negating I
-          results in the same value, not a positive number, because it
-          is already the lower bound of what an `INTEGER(KIND=1)'
-          variable can hold.  So, the expression evaluates to a
-          positive number, while the "expected" interpretation,
-          `(-I)*S', would evaluate to a negative number.
-
-          Even cases such as `-I*J' produce warnings, even though, in
-          most configurations and situations, there is no computational
-          difference between the results of the two
-          interpretations--the purpose of this warning is to warn about
-          differing interpretations and encourage a better style of
-          coding, not to identify only those places where bugs might
-          exist in the user's code.
-
-        * `DO' loops with `DO' variables that are not of integral
-          type--that is, using `REAL' variables as loop control
-          variables.  Although such loops can be written to work in the
-          "obvious" way, the way `g77' is required by the Fortran
-          standard to interpret such code is likely to be quite
-          different from the way many programmers expect.  (This is
-          true of all `DO' loops, but the differences are pronounced
-          for non-integral loop control variables.)
-
-          *Note Loops::, for more information.
-
-`-Werror'
-     Make all warnings into errors.
-
-`-W'
-     Turns on "extra warnings" and, if optimization is specified via
-     `-O', the `-Wuninitialized' option.  (This might change in future
-     versions of `g77'
-
-     "Extra warnings" are issued for:
-
-        * Unused parameters to a procedure (when `-Wunused' also is
-          specified).
-
-        * Overflows involving floating-point constants (not available
-          for certain configurations).
-
-   *Note Options to Request or Suppress Warnings: (gcc)Warning Options,
-for information on more options offered by the GBE shared by `g77'
-`gcc' and other GNU compilers.
-
-   Some of these have no effect when compiling programs written in
-Fortran:
-
-`-Wcomment'
-
-`-Wformat'
-
-`-Wparentheses'
-
-`-Wswitch'
-
-`-Wtraditional'
-
-`-Wshadow'
-
-`-Wid-clash-LEN'
-
-`-Wlarger-than-LEN'
-
-`-Wconversion'
-
-`-Waggregate-return'
-
-`-Wredundant-decls'
-     These options all could have some relevant meaning for GNU Fortran
-     programs, but are not yet supported.
-