aboutsummaryrefslogtreecommitdiff
path: root/gcc/f
diff options
context:
space:
mode:
authorCraig Burley <craig@jcb-sc.com>1999-04-17 14:09:21 +0000
committerCraig Burley <burley@gcc.gnu.org>1999-04-17 10:09:21 -0400
commit4e6a144034de387e9ff11a6ae78d6af86f0dc228 (patch)
treec277d18c2930d35193192450120a56e43caee603 /gcc/f
parent8a19a44a1fc162ba149500603e9951cc9cccf2d2 (diff)
downloadgcc-4e6a144034de387e9ff11a6ae78d6af86f0dc228.zip
gcc-4e6a144034de387e9ff11a6ae78d6af86f0dc228.tar.gz
gcc-4e6a144034de387e9ff11a6ae78d6af86f0dc228.tar.bz2
remove -fugly, other doc fixes
From-SVN: r26519
Diffstat (limited to 'gcc/f')
-rw-r--r--gcc/f/ChangeLog19
-rw-r--r--gcc/f/bugs.texi10
-rw-r--r--gcc/f/ffe.texi20
-rw-r--r--gcc/f/g77.texi290
-rw-r--r--gcc/f/g77install.texi60
-rw-r--r--gcc/f/lang-options.h3
-rw-r--r--gcc/f/news.texi132
-rw-r--r--gcc/f/top.c12
8 files changed, 298 insertions, 248 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog
index 9bd4289..29caa6e 100644
--- a/gcc/f/ChangeLog
+++ b/gcc/f/ChangeLog
@@ -1,3 +1,22 @@
+Sat Apr 17 16:55:59 1999 Craig Burley <craig@jcb-sc.com>
+
+ * bugs.texi, ffe.texi, g77.texi, g77install.texi, news.texi:
+ Clean up @code{} vs. @samp{}.
+ Clean up dashes (`--') vs. @minus{} vs. `---'.
+
+ * ffe.texi: Add copyright header.
+
+ * g77.texi, lang-options.h, news.texi, top.c (ffe_decode_option):
+ Remove support for -fugly option.
+ Clarify that -fugly-logint is needed instead of -fugly
+ to work around using .EQ./.NE. on LOGICAL operands.
+ Explain more about why -fugly-logint is bad juju.
+
+ * g77.texi (Missing Features): Describe READONLY as a missing
+ feature. Describe AUTOMATIC better.
+
+ * news.texi: Mention libf2c upgrade.
+
Sat Apr 17 14:05:53 1999 Craig Burley <craig@jcb-sc.com>
Make a place for front-end internals documentation:
diff --git a/gcc/f/bugs.texi b/gcc/f/bugs.texi
index ccf3a7b..3d4e791 100644
--- a/gcc/f/bugs.texi
+++ b/gcc/f/bugs.texi
@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. BUGS).
@set copyrights-bugs 1995-1999
-@set last-update-bugs 1999-04-03
+@set last-update-bugs 1999-04-17
@include root.texi
@@ -111,8 +111,8 @@ e.g. not passed to other procedures as they should be.
@code{g77} fails to warn about
use of a ``live'' iterative-DO variable
as an implied-DO variable
-in a @samp{WRITE} or @samp{PRINT} statement
-(although it does warn about this in a @samp{READ} statement).
+in a @code{WRITE} or @code{PRINT} statement
+(although it does warn about this in a @code{READ} statement).
@item
Something about @code{g77}'s straightforward handling of
@@ -210,8 +210,8 @@ for information on the @samp{-fdebug-kludge} option.
@item
When debugging, after starting up the debugger but before being able
to see the source code for the main program unit, the user must currently
-set a breakpoint at @samp{MAIN__} (or @samp{MAIN___} or @samp{MAIN_} if
-@samp{MAIN__} doesn't exist)
+set a breakpoint at @code{MAIN__} (or @code{MAIN___} or @code{MAIN_} if
+@code{MAIN__} doesn't exist)
and run the program until it hits the breakpoint.
At that point, the
main program unit is activated and about to execute its first
diff --git a/gcc/f/ffe.texi b/gcc/f/ffe.texi
index 4948050..4108bb8 100644
--- a/gcc/f/ffe.texi
+++ b/gcc/f/ffe.texi
@@ -1,3 +1,7 @@
+@c Copyright (C) 1999 Free Software Foundation, Inc.
+@c This is part of the G77 manual.
+@c For copying conditions, see the file g77.texi.
+
@node Front End
@chapter Front End
@cindex GNU Fortran Front End (FFE)
@@ -375,7 +379,7 @@ Whether @samp{Y} and @samp{Z} are local variables,
additional function entry points,
or dummy arguments to additional entry points
is not known
-until the @samp{ENTRY} statement is parsed.
+until the @code{ENTRY} statement is parsed.
@item
Similarly, whether @samp{TMP} is a local variable is not known
@@ -383,7 +387,7 @@ until the @samp{READ *, TMP} statement is parsed.
@item
The initial values for @samp{EE} and @samp{PI}
-are not known until after the @samp{DATA} statement is parsed.
+are not known until after the @code{DATA} statement is parsed.
@item
Whether @samp{FRED} is a function returning type @code{REAL}
@@ -404,7 +408,7 @@ especially when @code{ASSIGN}'ed.)
@item
That @samp{J} is a local variable is not known
-until the first @samp{ASSIGN} statement is parsed.
+until the first @code{ASSIGN} statement is parsed.
(This happens @emph{after} executable code has been seen.)
@end itemize
@@ -678,17 +682,17 @@ END
The arguments to the two calls to @samp{LFUNC}
require dynamic allocation (at run time),
-but are not required during execution of the @samp{CALL} statements.
+but are not required during execution of the @code{CALL} statements.
So, the scopes of those temporaries must be within blocks inside
the block corresponding to the Fortran @code{IF} block.
This cannot be represented ``naturally''
in vanilla C, nor in GBEL.
-The @samp{if}, @samp{elseif}, @samp{else},
-and @samp{endif} constructs
+The @code{if}, @code{elseif}, @code{else},
+and @code{endif} constructs
provided by both languages must,
-for a given @samp{if} block,
+for a given @code{if} block,
share the same C/GBE block.
Therefore, any temporaries needed during evaluation of @samp{expr}
@@ -793,7 +797,7 @@ as if @samp{SELECT CASE(temp0)} had been written.
Each corresponding @code{CASE} is replaced with @samp{CASE(@var{i})},
where @var{i} is the ordinal for that case,
determined while, or before,
-generating the cascade of @samp{if}-related constructs
+generating the cascade of @code{if}-related constructs
to cope with @code{CHARACTER} selection.
@item
diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi
index 73a8c2c..8d0a08f 100644
--- a/gcc/f/g77.texi
+++ b/gcc/f/g77.texi
@@ -2,7 +2,7 @@
@c %**start of header
@setfilename g77.info
-@set last-update 1999-04-03
+@set last-update 1999-04-17
@set copyrights-g77 1995-1999
@include root.texi
@@ -1388,7 +1388,7 @@ by type. Explanations are in the following sections.
@item Shorthand Options
@xref{Shorthand Options}.
@smallexample
--ff66 -fno-f66 -ff77 -fno-f77 -fugly -fno-ugly
+-ff66 -fno-f66 -ff77 -fno-f77 -fno-ugly
@end smallexample
@item Fortran Language Options
@@ -1529,7 +1529,7 @@ Fortran source code that should not be preprocessed.
Such source code cannot contain any preprocessor directives, such
as @code{#include}, @code{#define}, @code{#if}, and so on.
-You can force @samp{.f} files to be preprocessed by @samp{cpp} by using
+You can force @samp{.f} files to be preprocessed by @code{cpp} by using
@samp{-x f77-cpp-input}.
@xref{LEX}.
@@ -1656,7 +1656,7 @@ and when the resulting commands compile Fortran source files.
This option is obsolete in @code{egcs}
as of version 1.1.
The effect is instead achieved
-by the @samp{lang_init_options} routine
+by the @code{lang_init_options} routine
in @file{egcs/gcc/f/com.c}.
@cindex consistency checks
@@ -1720,6 +1720,10 @@ for other options accepted by the compiler:
@item -fugly
@cindex ugly features
@cindex features, ugly
+@emph{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:
@@ -1734,14 +1738,6 @@ or well-maintained portable Fortran code, but widely used
in old code.
@xref{Distensions}, for more information.
-@emph{Note:} The @samp{-fugly} option is likely to
-be removed in a future version.
-Implicitly enabling all the @samp{-fugly-*} options
-is unlikely to be feasible, or sensible, in the future,
-so users should learn to specify only those
-@samp{-fugly-*} options they really need for a
-particular source file.
-
@cindex -fno-ugly option
@cindex options, -fno-ugly
@item -fno-ugly
@@ -2733,7 +2729,7 @@ some machines, but might slow down a program that doesn't.
This option is effective when the floating-point unit is set to work in
IEEE 854 `extended precision'---as it typically is on x86 and m68k GNU
-systems---rather than IEEE 754 double precision. @code{-ffloat-store}
+systems---rather than IEEE 754 double precision. @samp{-ffloat-store}
tries to remove the extra precision by spilling data from floating-point
registers into memory and this typically involves a big performance
hit. However, it doesn't affect intermediate results, so that it is
@@ -2852,7 +2848,7 @@ currently recognized as such. This option unrolls only iterative
@c DL: Check my understanding of -funroll-all-loops v. -funroll-loops is correct.
Probably improves performance on code using @code{DO WHILE} loops by
unrolling them in addition to iterative @code{DO} loops. In the absence
-of @code{DO WHILE}, this option is equivalent to @code{-funroll-loops}
+of @code{DO WHILE}, this option is equivalent to @samp{-funroll-loops}
but possibly slower.
@item -fno-move-all-movables
@@ -3877,7 +3873,7 @@ For example: @samp{PRINT *, 'My name is Bob'}.
@item
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:
+user or programmer---appears as shown in the following example:
``The @code{INTEGER @var{ivar}} statement specifies that
@var{ivar} is a variable or array of type @code{INTEGER}.''
@@ -5666,7 +5662,7 @@ These disagreements strongly suggest that Fortran programmers,
and certainly existing Fortran programs, disagree about the
meaning of such invocations.
-The first version of @samp{JCB002} didn't accommodate some compilers'
+The first version of @code{JCB002} didn't accommodate some compilers'
treatment of @samp{INT(I1-I2)} where @samp{I1} and @samp{I2} are
@code{INTEGER*2}.
In such a case, these compilers apparently convert both
@@ -5678,7 +5674,7 @@ However, the results of the careful analyses done on the outputs
of programs compiled by these various compilers show that they
all implement either @samp{Interp 1} or @samp{Interp 2} above.
-Specifically, it is believed that the new version of @samp{JCB002}
+Specifically, it is believed that the new version of @code{JCB002}
above will confirm that:
@itemize @bullet
@@ -6396,7 +6392,7 @@ but that seems to be overkill for a product in beta test.
Note 2: Rules for InitialCaps names are:
-@itemize --
+@itemize @minus
@item
Must be a single uppercase letter, @strong{or}
@item
@@ -6409,7 +6405,7 @@ valid InitialCaps names, but @samp{AB}, @samp{A2}, and @samp{ABC} are
not.
Note that most, but not all, built-in names meet these
requirements---the exceptions are some of the two-letter format
-specifiers, such as @samp{BN} and @samp{BZ}.
+specifiers, such as @code{BN} and @code{BZ}.
Here are the names of the corresponding command-line options:
@@ -6603,7 +6599,7 @@ meaning is to be assumed.
@code{g77} treats double-quote (@samp{"})
as beginning an octal constant of @code{INTEGER(KIND=1)} type
-when the @code{-fvxt} option is specified.
+when the @samp{-fvxt} option is specified.
The form of this octal constant is
@example
@@ -6614,7 +6610,7 @@ The form of this octal constant is
where @var{octal-digits} is a nonempty string of characters in
the set @samp{01234567}.
-For example, the @code{-fvxt} option permits this:
+For example, the @samp{-fvxt} option permits this:
@example
PRINT *, "20
@@ -6647,7 +6643,7 @@ a fixed-form source file
as a continuation character rather than
as the beginning of a comment
(as it does in any other column)
-when the @code{-fvxt} option is specified.
+when the @samp{-fvxt} option is specified.
The following program, when run, prints a message indicating
whether it is interpreted according to GNU Fortran (and Fortran 90)
@@ -6758,7 +6754,7 @@ provided for by that standard.
Automatic conversion of numeric
expressions to @code{INTEGER(KIND=1)} in contexts such as:
-@itemize --
+@itemize @minus
@item
Array-reference indexes.
@item
@@ -6877,18 +6873,6 @@ portable constructs, are accepted.
These are humorously referred to as ``distensions'',
extensions that just plain look ugly in the harsh light of day.
-@emph{Note:} The @samp{-fugly} option, which currently serves
-as shorthand to enable all of the distensions below, is likely to
-be removed in a future version of @code{g77}.
-That's because it's likely new distensions will be added that
-conflict with existing ones in terms of assigning meaning to
-a given chunk of code.
-(Also, it's pretty clear that users should not use @samp{-fugly}
-as shorthand when the next release of @code{g77} might add a
-distension to that that causes their existing code, when recompiled,
-to behave differently---perhaps even fail to compile or run
-correctly.)
-
@menu
* Ugly Implicit Argument Conversion:: Disabled via @samp{-fno-ugly-args}.
* Ugly Assumed-Size Arrays:: Enabled via @samp{-fugly-assumed}.
@@ -7182,7 +7166,7 @@ ASSIGN 10 TO I
Normally, for portability and improved diagnostics, @code{g77}
reserves distinct storage for a ``sibling'' of @samp{I}, used
only for @code{ASSIGN} statements to that variable (along with
-the corresponding assigned-@code{GOTO} and assigned-@samp{FORMAT}-I/O
+the corresponding assigned-@code{GOTO} and assigned-@code{FORMAT}-I/O
statements that reference the variable).
However, some code (that violates the ANSI FORTRAN 77 standard)
@@ -7411,15 +7395,15 @@ on at least some systems:
The @code{libg2c} library
shipped with any @code{g77} that warns
about invocation of a non-Y2K-compliant intrinsic
-has renamed the @samp{EXTERNAL} procedure names
+has renamed the @code{EXTERNAL} procedure names
of those intrinsics.
This is done so that
the @code{libg2c} implementations of these intrinsics
cannot be directly linked to
-as @samp{EXTERNAL} names
+as @code{EXTERNAL} names
(which normally would avoid the non-Y2K-intrinsic warning).
-The renamed forms of the @samp{EXTERNAL} names
+The renamed forms of the @code{EXTERNAL} names
of these renamed procedures
may be linked to
by appending the string @samp{_y2kbug}
@@ -7435,27 +7419,27 @@ CALL DATE_Y2KBUG (STR)
CALL VXTIDATE_Y2KBUG (MM, DD, YY)
@end smallexample
-(Note that the @samp{EXTERNAL} statement
+(Note that the @code{EXTERNAL} statement
is not actually required,
since the modified names are not recognized as intrinsics
by the current version of @code{g77}.
But it is shown in this specific case,
for purposes of illustration.)
-The renaming of @samp{EXTERNAL} procedure names of these intrinsics
+The renaming of @code{EXTERNAL} procedure names of these intrinsics
causes unresolved references at link time.
For example, @samp{EXTERNAL DATE; CALL DATE(STR)}
is normally compiled by @code{g77}
as, in C, @samp{date_(&str, 20);}.
-This, in turn, links to the @samp{date_} procedure
-in the @samp{libE77} portion of @code{libg2c},
+This, in turn, links to the @code{date_} procedure
+in the @code{libE77} portion of @code{libg2c},
which purposely calls a nonexistent procedure
-named @samp{G77_date_y2kbuggy_0}.
+named @code{G77_date_y2kbuggy_0}.
The resulting link-time error is designed, via this name,
to encourage the programmer to look up the
index entries to this portion of the @code{g77} documentation.
-Generally, we recommend that the @samp{EXTERNAL} method
+Generally, we recommend that the @code{EXTERNAL} method
of invoking procedures in @code{libg2c}
@emph{not} be used.
When used, some of the correctness checking
@@ -7463,7 +7447,7 @@ normally performed by @code{g77}
is skipped.
In particular, it is probably better to use the
-@samp{INTRINSIC} method of invoking
+@code{INTRINSIC} method of invoking
non-Y2K-compliant procedures,
so anyone compiling the code
can quickly notice the potential Y2K problems
@@ -7491,14 +7475,14 @@ So, linking newly-compiled code
(invoking one of the intrinsics in question)
to an old library
might yield an unresolved reference
-to @samp{G77_date_y2kbug_0}.
-(The old library calls it @samp{G77_date_0}.)
+to @code{G77_date_y2kbug_0}.
+(The old library calls it @code{G77_date_0}.)
Similarly, linking previously-compiled code
to a new library
might yield an unresolved reference
-to @samp{G77_vxtidate_0}.
-(The new library calls it @samp{G77_vxtidate_y2kbug_0}.)
+to @code{G77_vxtidate_0}.
+(The new library calls it @code{G77_vxtidate_y2kbug_0}.)
The proper fix for the above problems
is to obtain the latest release of @code{g77}
@@ -8160,7 +8144,7 @@ options @code{g77} passes by running @samp{g77 -v}.
@pindex f2c
@cindex cfortran.h
@cindex Netlib
-Even if you don't actually use it as a compiler, @samp{f2c} from
+Even if you don't actually use it as a compiler, @code{f2c} from
@uref{ftp://ftp.netlib.org/f2c/src}, can be a useful tool when you're
interfacing (linking) Fortran and C@.
@xref{f2c Skeletons and Prototypes,,Generating Skeletons and Prototypes with @code{f2c}}.
@@ -8187,7 +8171,7 @@ Generally, C code written to link with
called from Fortran---should @samp{#include <g2c.h>} to define the C
versions of the Fortran types.
Don't assume Fortran @code{INTEGER} types
-correspond to C @samp{int}s, for instance; instead, declare them as
+correspond to C @code{int}s, for instance; instead, declare them as
@code{integer}, a type defined by @file{g2c.h}.
@file{g2c.h} is installed where @code{gcc} will find it by
default, assuming you use a copy of @code{gcc} compatible with
@@ -8202,7 +8186,7 @@ A simple and foolproof way to write @code{g77}-callable C routines---e.g.@: to
interface with an existing library---is to write a file (named, for
example, @file{fred.f}) of dummy Fortran
skeletons comprising just the declaration of the routine(s) and dummy
-arguments plus @samp{END} statements.
+arguments plus @code{END} statements.
Then run @code{f2c} on file @file{fred.f} to produce @file{fred.c}
into which you can edit
useful code, confident the calling sequence is correct, at least.
@@ -8216,7 +8200,7 @@ as the return type of a @code{REAL} @code{FUNCTION}.)
@samp{-P} option to generate C prototypes appropriate for calling the
Fortran.@footnote{The files generated like this can also be used for
inter-unit consistency checking of dummy and actual arguments, although
-the @samp{ftnchek} tool from @uref{ftp://ftp.netlib.org/fortran}
+the @code{ftnchek} tool from @uref{ftp://ftp.netlib.org/fortran}
or @uref{ftp://ftp.dsm.fordham.edu} is
probably better for this purpose.}
If the Fortran code containing any
@@ -8462,11 +8446,11 @@ described in this section.
@cindex statements, PROGRAM
When @code{g77} compiles a main program unit, it gives it the public
-procedure name @samp{MAIN__}.
+procedure name @code{MAIN__}.
The @code{libg2c} library has the actual @code{main()} procedure
as is typical of C-based environments, and
it is this procedure that performs some initial start-up
-activity and then calls @samp{MAIN__}.
+activity and then calls @code{MAIN__}.
Generally, @code{g77} and @code{libg2c} are designed so that you need not
include a main program unit written in Fortran in your program---it
@@ -8508,7 +8492,7 @@ Fortran code.
The standard way to get around this problem is to set a break
point (a one-time, or temporary, break point will do) at
-the entrance to @samp{MAIN__}, and then run the program.
+the entrance to @code{MAIN__}, and then run the program.
A convenient way to do so is to add the @code{gdb} command
@example
@@ -8525,7 +8509,7 @@ unit of your program.
Of course, if you really want to set a break point at some
other place in your program and just start the program
-running, without first breaking at @samp{MAIN__},
+running, without first breaking at @code{MAIN__},
that should work fine.
@node Procedures
@@ -9322,7 +9306,7 @@ Instead, make a separate @code{INCLUDE} file that defines
so you can more easily change the actual numbers in the future.
The information below is culled from the definition
-of @samp{F_err} in @file{f/runtime/libI77/err.c} in the
+of @code{F_err} in @file{f/runtime/libI77/err.c} in the
@code{g77} source tree.
@smallexample
@@ -10234,7 +10218,7 @@ it provides either form of detection are welcome.
For several versions prior to 0.5.20, @code{g77} configured its
version of the @code{libf2c} run-time library so that one of
-its configuration macros, @samp{ALWAYS_FLUSH}, was defined.
+its configuration macros, @code{ALWAYS_FLUSH}, was defined.
This was done as a result of a belief that many programs expected
output to be flushed to the operating system (under UNIX, via
@@ -10259,7 +10243,7 @@ non-flushing library routines.)
@xref{Always Flush Output}, for information on how to modify
the @code{g77} source tree so that a version of @code{libg2c}
-can be built and installed with the @samp{ALWAYS_FLUSH} macro defined.
+can be built and installed with the @code{ALWAYS_FLUSH} macro defined.
@node Large File Unit Numbers
@subsection Large File Unit Numbers
@@ -10278,13 +10262,13 @@ file unit number that is out of the range accepted by
@code{libg2c}.
Normally, this range is 0 through 99, and the high end
of the range is controlled by a @code{libg2c} source-file
-macro named @samp{MXUNIT}.
+macro named @code{MXUNIT}.
If you can easily change your program to use unit numbers
in the range 0 through 99, you should do so.
Otherwise, see @ref{Larger File Unit Numbers}, for information on how
-to change @samp{MXUNIT} in @code{libg2c} so you can build and
+to change @code{MXUNIT} in @code{libg2c} so you can build and
install a new version of @code{libg2c} that supports the larger
unit numbers you need.
@@ -10306,11 +10290,11 @@ in your system's documentation.
@cindex x86 floating-point
If your program depends on exact IEEE 754 floating-point handling it may
help on some systems---specifically x86 or m68k hardware---to use
-the @code{-ffloat-store} option or to reset the precision flag on the
+the @samp{-ffloat-store} option or to reset the precision flag on the
floating-point unit @xref{Optimize Options}.
However, it might be better simply to put the FPU into double precision
-mode and not take the performance hit of @code{-ffloat-store}. On x86
+mode and not take the performance hit of @samp{-ffloat-store}. On x86
and m68k GNU systems you can do this with a technique similar to that
for turning on floating-point exceptions @xref{Floating-point Exception
Handling}. The control word could be set to double precision by
@@ -10430,15 +10414,6 @@ Currently, @code{g77} supports only automatic arrays, not
@code{RECURSIVE} procedures or other means of explicitly
specifying that variables or arrays are automatic.
-@cindex -fugly option
-@cindex options, -fugly
-@item -fugly
-Fix the source code so that @samp{-fno-ugly} will work.
-Note that, for many programs, it is difficult to practically
-avoid using the features enabled via @samp{-fugly-init}, and these
-features pose the lowest risk of writing nonportable code, among the
-various ``ugly'' features.
-
@cindex -f@var{group}-intrinsics-hide option
@cindex options, -f@var{group}-intrinsics-hide
@item -f@var{group}-intrinsics-hide
@@ -10975,8 +10950,8 @@ simply too large for the system, or buggy.)
@subsection Nothing Happens
@cindex nothing happens
@cindex naming programs
-@cindex @samp{test} programs
-@cindex programs, @samp{test}
+@cindex @code{test} programs
+@cindex programs, @code{test}
It is occasionally reported that a ``simple'' program,
such as a ``Hello, World!'' program, does nothing when
it is run, even though the compiler reported no errors,
@@ -10984,7 +10959,7 @@ despite the program containing nothing other than a
simple @code{PRINT} statement.
This most often happens because the program has been
-compiled and linked on a UNIX system and named @samp{test},
+compiled and linked on a UNIX system and named @code{test},
though other names can lead to similarly unexpected
run-time behavior on various systems.
@@ -11151,7 +11126,7 @@ used by @code{g77}, handles only double-precision values.
Since @samp{0.2} in the program is a single-precision value, it
is converted to double precision (still in binary notation)
before being converted back to decimal.
-The conversion to binary appends _binary_ zero digits to the
+The conversion to binary appends @emph{binary} zero digits to the
original value---which, again, is an inexact approximation of
0.2---resulting in an approximation that is much less exact
than is connoted by the use of double precision.
@@ -11196,7 +11171,7 @@ with that produced by some other Fortran implementations.
A useful source of information on floating-point computation is David
Goldberg, `What Every Computer Scientist Should Know About
Floating-Point Arithmetic', Computing Surveys, 23, March 1991, pp.@:
-5--48.
+5-48.
An online version is available at
@uref{http://docs.sun.com},
and there is a supplemented version, in PostScript form, at
@@ -11259,6 +11234,7 @@ GNU Fortran language:
* Array Bounds Expressions::
* POINTER Statements::
* Sensible Non-standard Constructs::
+* READONLY Keyword::
* FLUSH Statement::
* Expressions in FORMAT Statements::
* Explicit Assembler Code::
@@ -11344,7 +11320,7 @@ but one of the most frequent bugs encountered by new users is
accidentally writing fixed-form source code into and beyond
column 73.
So, maybe the users of old code would be able to more easily handle
-having to specify, say, a @code{-Wno-col73to80} option.
+having to specify, say, a @samp{-Wno-col73to80} option.
@node Fortran 90 Support
@subsection Fortran 90 Support
@@ -11587,6 +11563,34 @@ specification of an attribute), please submit a
bug report with an explanation, so we can consider
fixing @code{g77} just for cases like yours.
+@node READONLY Keyword
+@subsection @code{READONLY} Keyword
+@cindex READONLY
+
+Support for @code{READONLY}, in @code{OPEN} statements,
+requires @code{libg2c} support,
+to make sure that @samp{CLOSE(@dots{},STATUS='DELETE')}
+does not delete a file opened on a unit
+with the @code{READONLY} keyword,
+and perhaps to trigger a fatal diagnostic
+if a @code{WRITE} or @code{PRINT}
+to such a unit is attempted.
+
+@emph{Note:} It is not sufficient for @code{g77} and @code{libg2c}
+(its version of @code{libf2c})
+to assume that @code{READONLY} does not need some kind of explicit support
+at run time,
+due to UNIX systems not (generally) needing it.
+@code{g77} is not just a UNIX-based compiler!
+
+Further, mounting of non-UNIX filesystems on UNIX systems
+(such as via NFS)
+might require proper @code{READONLY} support.
+
+@cindex SHARED
+(Similar issues might be involved with supporting the @code{SHARED}
+keyword.)
+
@node FLUSH Statement
@subsection @code{FLUSH} Statement
@@ -11811,22 +11815,36 @@ be supported by a future version of @code{g77}.
@cindex automatic variables
@cindex variables, automatic
-@code{g77} doesn't support the @code{AUTOMATIC} keyword that
+@code{g77} doesn't support the @code{AUTOMATIC} statement that
@code{f2c} does.
-It is not yet clear exactly what this statement would achieve.
-The semantic equivalent would be provided by @code{RECURSIVE}
-combined with lack of @code{SAVE}.
-In that sense, perhaps all it would provide is an
-overriding of an unadorned (blanket) @code{SAVE} statement
-for specific variables.
+@code{AUTOMATIC} would identify a variable or array
+as not being @code{SAVE}'d, which is normally the default,
+but which would be especially useful for code that, @emph{generally},
+needed to be compiled with the @samp{-fno-automatic} option.
+
+@code{AUTOMATIC} also would serve as a hint to the compiler that placing
+the variable or array---even a very large array--on the stack is acceptable.
+
+@code{AUTOMATIC} would not, by itself, designate the containing procedure
+as recursive.
-It might also serve as a hint to the compiler that placing
-even a very large array on the stack is acceptable.
+@code{AUTOMATIC} should work syntactically like @code{SAVE},
+in that @code{AUTOMATIC} with no variables listed should apply to
+all pertinent variables and arrays
+(which would not include common blocks or their members).
-Perhaps it should disallow @code{DATA}
-or other specification of any initial values
-for affected variables as well.
+Variables and arrays denoted as @code{AUTOMATIC}
+would not be permitted to be initialized via @code{DATA}
+or other specification of any initial values,
+requiring explicit initialization,
+such as via assignment statements.
+
+@cindex UNSAVE
+@cindex STATIC
+Perhaps @code{UNSAVE} and @code{STATIC},
+as strict semantic opposites to @code{SAVE} and @code{AUTOMATIC},
+should be provided as well.
@node Suppressing Space Padding
@subsection Suppressing Space Padding of Source Lines
@@ -11934,7 +11952,7 @@ A convenient trick is to compile this something like:
@smallexample
gcc -o libtrapfpe.a trapfpe.c
@end smallexample
-and then use it by adding @code{-trapfpe} to the @code{g77} command line
+and then use it by adding @samp{-trapfpe} to the @code{g77} command line
when linking.
@node Nonportable Conversions
@@ -11949,7 +11967,7 @@ is type @code{REAL}), that other compilers might
quietly accept.
Some of these conversions are accepted by @code{g77}
-when the @samp{-fugly} option is specified.
+when the @samp{-fugly-logint} option is specified.
Perhaps it should accept more or all of them.
@node Large Automatic Arrays
@@ -12625,7 +12643,7 @@ could be very helpful.
@cindex logical expressions, comparing
Use of @code{.EQ.} and @code{.NE.} on @code{LOGICAL} operands
-is not supported, except via @samp{-fugly}, which is not
+is not supported, except via @samp{-fugly-logint}, which is not
recommended except for legacy code (where the behavior expected
by the @emph{code} is assumed).
@@ -12683,6 +12701,20 @@ that were well-designed in the first place.
you, without knowing more context, whether the @samp{&} and @samp{-}
operators are infix (binary) or unary!)
+Most dangerous of all is the fact that,
+even assuming consensus on its meaning,
+an expression like @samp{L.AND.M.EQ.N},
+if it is the result of a typographical error,
+doesn't @emph{look} like it has such a typo.
+Even experienced Fortran programmers would not likely notice that
+@samp{L.AND.M.EQV.N} was, in fact, intended.
+
+So, this is a prime example of a circumstance in which
+a quality compiler diagnoses the code,
+instead of leaving it up to someone debugging it
+to know to turn on special compiler options
+that might diagnose it.
+
@node Order of Side Effects
@subsection Order of Side Effects
@cindex side effects, order of evaluation
@@ -13539,13 +13571,13 @@ when compiling most any kind of program.
which is used during the build of @code{gcc} to
build a list of all options that are accepted by
at least one language's compiler.
-This list goes into the @samp{lang_options} array
+This list goes into the @code{lang_options} array
in @file{gcc/toplev.c}, which uses this array to
determine whether a particular option should be
offered to the linked-in front end for processing
-by calling @samp{lang_option_decode}, which, for
+by calling @code{lang_option_decode}, which, for
@code{g77}, is in @file{@value{path-g77}/com.c} and just
-calls @samp{ffe_decode_option}.
+calls @code{ffe_decode_option}.
If the linked-in front end ``rejects'' a
particular option passed to it, @file{toplev.c}
@@ -13555,7 +13587,7 @@ language's compiler is willing to accept it.
This allows commands like @samp{gcc -fno-asm foo.c bar.f}
to work, even though Fortran compilation does
not currently support the @samp{-fno-asm} option;
-even though the @code{f771} version of @samp{lang_decode_option}
+even though the @code{f771} version of @code{lang_decode_option}
rejects @samp{-fno-asm}, @file{toplev.c} doesn't
produce a diagnostic because some other language (C)
does accept it.
@@ -13568,7 +13600,7 @@ a warning about this would be helpful if it were
possible.
Code that processes Fortran options is found in
-@file{@value{path-g77}/top.c}, function @samp{ffe_decode_option}.
+@file{@value{path-g77}/top.c}, function @code{ffe_decode_option}.
This code needs to check positive and negative forms
of each option.
@@ -13588,9 +13620,9 @@ Accessor macros for Fortran options, used by code
in the @code{g77} FFE, are defined in @file{@value{path-g77}/top.h}.
@emph{Compiler options} are listed in @file{gcc/toplev.c}
-in the array @samp{f_options}.
-An option not listed in @samp{lang_options} is
-looked up in @samp{f_options} and handled from there.
+in the array @code{f_options}.
+An option not listed in @code{lang_options} is
+looked up in @code{f_options} and handled from there.
The defaults for compiler options are set in the
global definitions for the corresponding variables,
@@ -13608,7 +13640,7 @@ Change the way @code{f771} handles the @samp{-fset-g77-defaults}
option, which is always provided as the first option when
called by @code{g77} or @code{gcc}.
-This code is in @samp{ffe_decode_options} in @file{@value{path-g77}/top.c}.
+This code is in @code{ffe_decode_options} in @file{@value{path-g77}/top.c}.
Have it change just the variables that you want to default
to a different setting for Fortran compiles compared to
compiles of other languages.
@@ -13630,7 +13662,7 @@ are passed via this mechanism.
@item EGCS-1.1
@itemx EGCS-1.2
-Change the @samp{lang_init_options} routine in @file{egcs/gcc/f/com.c}.
+Change the @code{lang_init_options} routine in @file{egcs/gcc/f/com.c}.
(Note that these versions of @code{g77}
perform internal consistency checking automatically
@@ -13670,7 +13702,7 @@ them show up only given certain kinds of (popular) input.
@itemize @bullet
@item
-Improve @samp{malloc} package and its uses to specify more info about
+Improve @code{malloc} package and its uses to specify more info about
memory pools and, where feasible, use obstacks to implement them.
@item
@@ -13697,11 +13729,11 @@ unimplemented-statement catch-all.
@item
Throughout @code{g77}, don't pass line/column pairs where
-a simple @samp{ffewhere} type, which points to the error as much as is
-desired by the configuration, will do, and don't pass @samp{ffelexToken} types
-where a simple @samp{ffewhere} type will do.
+a simple @code{ffewhere} type, which points to the error as much as is
+desired by the configuration, will do, and don't pass @code{ffelexToken} types
+where a simple @code{ffewhere} type will do.
Then, allow new default
-configuration of @samp{ffewhere} such that the source line text is not
+configuration of @code{ffewhere} such that the source line text is not
preserved, and leave it to things like Emacs' next-error function
to point to them (now that @samp{next-error} supports column,
or, perhaps, character-offset, numbers).
@@ -13751,7 +13783,7 @@ that are at all worth inlining.
@item
When doing @samp{CHAR_VAR = CHAR_FUNC(@dots{})},
and it's clear that types line up
-and @samp{CHAR_VAR} is addressable or not a @samp{VAR_DECL},
+and @samp{CHAR_VAR} is addressable or not a @code{VAR_DECL},
make @samp{CHAR_VAR}, not a
temporary, be the receiver for @samp{CHAR_FUNC}.
(This is now done for @code{COMPLEX} variables.)
@@ -13799,7 +13831,7 @@ external names for @code{COMPLEX} functions in some cases once @code{g77} uses
@code{gcc} rather than @code{f2c} calling conventions.)
@item
-Do something useful with @samp{doiter} references where possible.
+Do something useful with @code{doiter} references where possible.
For example, @samp{CALL FOO(I)} cannot modify @samp{I} if within
a @code{DO} loop that uses @samp{I} as the
iteration variable, and the back end might find that info useful
@@ -13963,7 +13995,7 @@ provides it via its configuration.
@itemize @bullet
@item
-Switch to using @samp{REAL_VALUE_TYPE} to represent floating-point constants
+Switch to using @code{REAL_VALUE_TYPE} to represent floating-point constants
exclusively so the target float format need not be required.
This
means changing the way @code{g77} handles initialization of aggregate areas
@@ -14016,13 +14048,13 @@ Come up with better naming conventions for @samp{-D} to establish requirements
to achieve desired implementation dialect via @file{proj.h}.
@item
-Clean up used tokens and @samp{ffewhere}s in @samp{ffeglobal_terminate_1}.
+Clean up used tokens and @code{ffewhere}s in @code{ffeglobal_terminate_1}.
@item
-Replace @file{sta.c} @samp{outpooldisp} mechanism with @samp{malloc_pool_use}.
+Replace @file{sta.c} @code{outpooldisp} mechanism with @code{malloc_pool_use}.
@item
-Check for @samp{opANY} in more places in @file{com.c}, @file{std.c},
+Check for @code{opANY} in more places in @file{com.c}, @file{std.c},
and @file{ste.c}, and get rid of the @samp{opCONVERT(opANY)} kludge
(after determining if there is indeed no real need for it).
@@ -14064,22 +14096,22 @@ to the official standard, or put documentation of the rules as used
in the code@dots{}uh@dots{}in the code.
@item
-Some @samp{ffebld_new} calls (those outside of @file{ffeexpr.c} or
-inside but invoked via paths not involving @samp{ffeexpr_lhs} or
-@samp{ffeexpr_rhs}) might be creating things
+Some @code{ffebld_new} calls (those outside of @file{ffeexpr.c} or
+inside but invoked via paths not involving @code{ffeexpr_lhs} or
+@code{ffeexpr_rhs}) might be creating things
in improper pools, leading to such things staying around too long or
(doubtful, but possible and dangerous) not long enough.
@item
-Some @samp{ffebld_list_new} (or whatever) calls might not be matched by
-@samp{ffebld_list_bottom} (or whatever) calls, which might someday matter.
+Some @code{ffebld_list_new} (or whatever) calls might not be matched by
+@code{ffebld_list_bottom} (or whatever) calls, which might someday matter.
(It definitely is not a problem just yet.)
@item
Probably not doing clean things when we fail to @code{EQUIVALENCE} something
due to alignment/mismatch or other problems---they end up without
-@samp{ffestorag} objects, so maybe the backend (and other parts of the front
-end) can notice that and handle like an @samp{opANY} (do what it wants, just
+@code{ffestorag} objects, so maybe the backend (and other parts of the front
+end) can notice that and handle like an @code{opANY} (do what it wants, just
don't complain or crash).
Most of this seems to have been addressed
by now, but a code review wouldn't hurt.
@@ -14097,7 +14129,7 @@ clutter.
@item
When @code{FUNCTION} and @code{ENTRY} point types disagree (@code{CHARACTER}
lengths, type classes, and so on),
-@samp{ANY}-ize the offending @code{ENTRY} point and any @emph{new} dummies
+@code{ANY}-ize the offending @code{ENTRY} point and any @emph{new} dummies
it specifies.
@item
@@ -14166,7 +14198,7 @@ as the above is just a sample, no such section exists.
* INTGLOB:: Intrinsic also used as name of global.
* LEX:: Various lexer messages
* GLOBALS:: Disagreements about globals.
-* LINKFAIL:: When linking @samp{f771} fails.
+* LINKFAIL:: When linking @code{f771} fails.
* Y2KBAD:: Use of non-Y2K-compliant intrinsic.
@end menu
@@ -14285,8 +14317,8 @@ expects the Fortran 90 interpretation, you can:
@itemize @bullet
@item
Change it to @samp{DBLE(@var{expr})} (if @var{intrinsic} is
-@samp{REAL}) or @samp{DIMAG(@var{expr})} (if @var{intrinsic}
-is @samp{AIMAG})
+@code{REAL}) or @samp{DIMAG(@var{expr})} (if @var{intrinsic}
+is @code{AIMAG})
if it expected the Fortran 90 interpretation.
This assumes @var{expr} is @code{COMPLEX(KIND=2)}---if it is
@@ -14574,13 +14606,13 @@ C On XYZZY systems, remove "C" on next line:
CALL XYZZY_RESET
@end smallexample
-However, that leaves the first @samp{C} in the @samp{CALL}
+However, that leaves the first @samp{C} in the @code{CALL}
statement in column 6, making it a comment line, which is
not really what the author intended, and which is likely
to result in one of the above-listed diagnostics.
@emph{Replacing} the @samp{C} in column 1 with a space
-is the proper change to make, to ensure the @samp{CALL}
+is the proper change to make, to ensure the @code{CALL}
keyword starts in or after column 7.
Another common mistake like this is to forget that fixed-form
diff --git a/gcc/f/g77install.texi b/gcc/f/g77install.texi
index c73fc06..cae1fb3 100644
--- a/gcc/f/g77install.texi
+++ b/gcc/f/g77install.texi
@@ -423,9 +423,9 @@ These problems can occur on most or all systems.
* GNU C Required:: Why even ANSI C is not enough.
* Patching GNU CC:: Why @code{gcc} needn't be patched.
* Building GNU CC Necessary:: Why you can't build @emph{just} Fortran.
-* Missing strtoul or bsearch:: When linking @samp{f771} fails.
+* Missing strtoul or bsearch:: When linking @code{f771} fails.
* Cleanup Kills Stage Directories:: For @code{g77} developers.
-* LANGUAGES Macro Ignored:: Sometimes @samp{LANGUAGES} is ignored.
+* LANGUAGES Macro Ignored:: Sometimes @code{LANGUAGES} is ignored.
@end menu
@node GNU C Required
@@ -490,11 +490,11 @@ This information does not apply to the
@ifclear OMIT-FSF-G77
On SunOS4 systems, linking the @code{f771} program used to
produce an error message concerning an undefined symbol named
-@samp{_strtoul}, because the @samp{strtoul} library function
+@samp{_strtoul}, because the @code{strtoul} library function
is not provided on that system.
Other systems have, in the past, been reported to not provide
-their own @samp{strtoul} or @samp{bsearch} function.
+their own @code{strtoul} or @code{bsearch} function.
Some versions @code{g77} tried to default to providing bare-bones
versions of @code{bsearch} and @code{strtoul} automatically,
@@ -504,8 +504,8 @@ To limit the failures to those few systems actually missing the
required routines, the bare-bones versions are still provided,
in @file{@value{path-g77}/proj.c},
if the appropriate macros are defined.
-These are @code{NEED_BSEARCH} for @samp{bsearch} and
-@code{NEED_STRTOUL} for @samp{NEED_STRTOUL}.
+These are @code{NEED_BSEARCH} for @code{bsearch} and
+@code{NEED_STRTOUL} for @code{NEED_STRTOUL}.
Therefore, if you are sure your system is missing
@code{bsearch} or @code{strtoul} in its library,
@@ -530,8 +530,8 @@ make bootstrap BOOT_CFLAGS='-O2 -g -DNEED_STRTOUL'
@end smallexample
If you then encounter problems compiling @file{@value{path-g77}/proj.c},
-it might be due to a discrepancy between how @samp{bsearch}
-or @samp{strtoul} are defined by that file and how they're
+it might be due to a discrepancy between how @code{bsearch}
+or @code{strtoul} are defined by that file and how they're
declared by your system's header files.
In that case, you'll have to use some basic knowledge of C
@@ -559,14 +559,14 @@ that, on demand.
@node LANGUAGES Macro Ignored
@subsubsection LANGUAGES Macro Ignored
-@cindex @samp{LANGUAGES} macro ignored
-@cindex ignoring @samp{LANGUAGES} macro
+@cindex @code{LANGUAGES} macro ignored
+@cindex ignoring @code{LANGUAGES} macro
Prior to version 0.5.23 of @code{g77}
and version 1.1 of @code{egcs},
@code{g77} would sometimes ignore
-the absence of @samp{f77} and @samp{F77} in the
-@samp{LANGUAGES} macro definition used for the
+the absence of @code{f77} and @code{F77} in the
+@code{LANGUAGES} macro definition used for the
@code{make} command being processed.
As of @code{g77} version 0.5.23
@@ -580,7 +580,7 @@ such as @code{g++},
are known to go ahead and perform various
language-specific activities when their
respective language strings do not appear
-in the @samp{LANGUAGES} macro in effect
+in the @code{LANGUAGES} macro in effect
during that invocation of @code{make}.
It is expected that these remaining problems will
@@ -669,7 +669,7 @@ As such, none of the following information is expected to
be pertinent in future versions of @code{g77}.
@menu
-* Larger File Unit Numbers:: Raising @samp{MXUNIT}.
+* Larger File Unit Numbers:: Raising @code{MXUNIT}.
* Always Flush Output:: Synchronizing write errors.
* Maximum Stackable Size:: Large arrays forced off the stack.
* Floating-point Bit Patterns:: Possible programs building @code{g77}
@@ -697,7 +697,7 @@ a run-time crash in @code{libf2c}, because the unit number,
If you know that Fortran programs at your installation require
the use of unit numbers higher than 99, you can change the
-value of the @samp{MXUNIT} macro, which represents the maximum unit
+value of the @code{MXUNIT} macro, which represents the maximum unit
number, to an appropriately higher value.
To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
@@ -707,12 +707,12 @@ To do this, edit the file @file{@value{path-libf2c}/libI77/fio.h} in your
#define MXUNIT 100
@end example
-Change the line so that the value of @samp{MXUNIT} is defined to be
+Change the line so that the value of @code{MXUNIT} is defined to be
at least one @emph{greater} than the maximum unit number used by
the Fortran programs on your system.
(For example, a program that does @samp{WRITE (UNIT=255)} would require
-@samp{MXUNIT} set to at least 256 to avoid crashing.)
+@code{MXUNIT} set to at least 256 to avoid crashing.)
Then build or rebuild @code{g77} as appropriate.
@@ -753,7 +753,7 @@ asynchronous, or, more precisely, buffered error reporting
(detection of errors might be delayed).
@code{libg2c} supports flagging write errors immediately when
-it is built with the @samp{ALWAYS_FLUSH} macro defined.
+it is built with the @code{ALWAYS_FLUSH} macro defined.
This results in a @code{libg2c} that runs slower, sometimes
quite a bit slower, under certain circumstances---for example,
accessing files via the networked file system NFS---but the
@@ -763,7 +763,7 @@ If you know that Fortran programs requiring this level of precision
of error reporting are to be compiled using the
version of @code{g77} you are building, you might wish to
modify the @code{g77} source tree so that the version of
-@code{libg2c} is built with the @samp{ALWAYS_FLUSH} macro
+@code{libg2c} is built with the @code{ALWAYS_FLUSH} macro
defined, enabling this behavior.
To do this, find this line in @file{@value{path-libf2c}/f2c.h} in
@@ -788,7 +788,7 @@ Then build or rebuild @code{g77} as appropriate.
@cindex segmentation violation
@code{g77}, on most machines, puts many variables and arrays on the stack
where possible, and can be configured (by changing
-@samp{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
+@code{FFECOM_sizeMAXSTACKITEM} in @file{@value{path-g77}/com.c}) to force
smaller-sized entities into static storage (saving
on stack space) or permit larger-sized entities to be put on the
stack (which can improve run-time performance, as it presents
@@ -796,7 +796,7 @@ more opportunities for the GBE to optimize the generated code).
@emph{Note:} Putting more variables and arrays on the stack
might cause problems due to system-dependent limits on stack size.
-Also, the value of @samp{FFECOM_sizeMAXSTACKITEM} has no
+Also, the value of @code{FFECOM_sizeMAXSTACKITEM} has no
effect on automatic variables and arrays.
@xref{But-bugs}, for more information.
@@ -837,7 +837,7 @@ This size currently is quite small, since @code{g77}
currently has a known bug requiring too much memory
and time to handle such cases.
In @file{@value{path-g77}/data.c}, the macro
-@samp{FFEDATA_sizeTOO_BIG_INIT_} is defined
+@code{FFEDATA_sizeTOO_BIG_INIT_} is defined
to the minimum size for the warning to appear.
The size is specified in storage units,
which can be bytes, words, or whatever, on a case-by-case basis.
@@ -1537,16 +1537,16 @@ issuing an explanatory diagnostic.
@cindex building @code{gcc}
@cindex building @code{g77}
-@cindex @samp{LANGUAGES} macro
+@cindex @code{LANGUAGES} macro
Building @code{g77} requires building enough of @code{gcc} that
these instructions assume you're going to build all of
@code{gcc}, including @code{g++}, @code{protoize}, and so on.
You can save a little time and disk space by changes the
-@samp{LANGUAGES} macro definition in @code{gcc/Makefile.in}
+@code{LANGUAGES} macro definition in @code{gcc/Makefile.in}
or @code{gcc/Makefile}, but if you do that, you're on your own.
One change is almost @emph{certainly} going to cause failures:
-removing @samp{c} or @samp{f77} from the definition of the
-@samp{LANGUAGES} macro.
+removing @code{c} or @code{f77} from the definition of the
+@code{LANGUAGES} macro.
After configuring @code{gcc}, which configures @code{g77} and
@code{libg2c} automatically, you're ready to start the actual
@@ -1785,7 +1785,7 @@ make -k CC=gcc install
As described in @ref{Installation,,Installing GNU CC,
gcc,Using and Porting GNU CC}, the values for
-the @samp{CC} and @samp{LANGUAGES} macros should
+the @code{CC} and @code{LANGUAGES} macros should
be the same as those you supplied for the build
itself.
@@ -1805,7 +1805,7 @@ make -k @dots{} install install-libf77
We don't know why some non-GNU versions of @code{make} sometimes
require this alternate command, but they do.
-(Remember to supply the appropriate definition for @samp{CC}
+(Remember to supply the appropriate definition for @code{CC}
where you see @samp{@dots{}} in the above command.)
Note that using the @samp{-k} option tells @code{make} to
@@ -1939,10 +1939,10 @@ information for the derived files to work around the
problem of not having the appropriate tools installed.
On UNIX systems, the simplest way to update the date-time-modified
-information of a file is to use the use the @samp{touch}
+information of a file is to use the use the @code{touch}
command.
-How to use @samp{touch} to update the derived files
+How to use @code{touch} to update the derived files
updated by each of the tools is described below.
@emph{Note:} New versions of @code{g77} might change the set of
files it generates by invoking each of these tools.
diff --git a/gcc/f/lang-options.h b/gcc/f/lang-options.h
index 3f439fd..64e9f63 100644
--- a/gcc/f/lang-options.h
+++ b/gcc/f/lang-options.h
@@ -59,8 +59,7 @@ FTNOPT( "-fpedantic", "Warn about use of (only a few for now) Fortran extensions
FTNOPT( "-fno-pedantic", "" )
FTNOPT( "-fvxt", "Program is written in VXT (Digital-like) FORTRAN" )
FTNOPT( "-fno-vxt", "" )
-FTNOPT( "-fugly", "Obsolete; allow certain ugly features" )
-FTNOPT( "-fno-ugly", "" )
+FTNOPT( "-fno-ugly", "Disallow all ugly features" )
FTNOPT( "-fugly-args", "" )
FTNOPT( "-fno-ugly-args", "Hollerith and typeless constants not passed as arguments" )
FTNOPT( "-fugly-assign", "Allow ordinary copying of ASSIGN'ed vars" )
diff --git a/gcc/f/news.texi b/gcc/f/news.texi
index 8723157..9520e28 100644
--- a/gcc/f/news.texi
+++ b/gcc/f/news.texi
@@ -9,7 +9,7 @@
@c in the standalone derivations of this file (e.g. NEWS).
@set copyrights-news 1995-1999
-@set last-update-news 1999-04-03
+@set last-update-news 1999-04-17
@include root.texi
@@ -190,7 +190,7 @@ as if they ended in @samp{.for} and @samp{.fpp}, respectively.
that has an interface that is not Year 2000 (Y2K) compliant.
Also, the @code{libg2c} has been changed to increase the likelihood
of catching references to the implementations of these intrinsics
-using the @samp{EXTERNAL} mechanism
+using the @code{EXTERNAL} mechanism
(which would avoid the new warnings).
@ifset DOC-G77
@@ -205,7 +205,7 @@ disagrees with the reference concerning the type of the function.
@end ifclear
@item
-@code{-fno-emulate-complex} is now the default option.
+@samp{-fno-emulate-complex} is now the default option.
This should result in improved performance
of code that uses the @code{COMPLEX} data type.
@@ -213,15 +213,23 @@ of code that uses the @code{COMPLEX} data type.
@cindex double-precision performance
@cindex -malign-double
@item
-The @code{-malign-double} option
+The @samp{-malign-double} option
now reliably aligns @emph{all} double-precision variables and arrays
on Intel x86 targets.
+@item
+Support for the @samp{-fugly} option has been removed.
+
@ifclear USERVISONLY
@item
Improve documentation and indexing,
including information on Year 2000 (Y2K) compliance.
@end ifclear
+
+@ifclear USERVISONLY
+@item
+Upgrade to @code{libf2c} as of 1999-03-17.
+@end ifclear
@end itemize
@heading In 0.5.24 and @code{egcs} 1.1.2 (versus 0.5.23 and 1.1.1):
@@ -230,7 +238,7 @@ including information on Year 2000 (Y2K) compliance.
@item
Fix the @code{IDate} intrinsic (VXT) (in @code{libg2c})
so the returned year is in the documented, non-Y2K-compliant range
-of 0--99,
+of 0-99,
instead of being returned as 100 in the year 2000.
@ifset DOC-G77
@@ -239,12 +247,12 @@ for more information.
@end ifset
@item
-Fix the @samp{Date_and_Time} intrinsic (in @code{libg2c})
+Fix the @code{Date_and_Time} intrinsic (in @code{libg2c})
to return the milliseconds value properly
in @var{Values}(8).
@item
-Fix the @samp{LStat} intrinsic (in @code{libg2c})
+Fix the @code{LStat} intrinsic (in @code{libg2c})
to return device-ID information properly
in @var{SArray}(7).
@@ -273,13 +281,13 @@ upon doing any I/O following a direct formatted write.
@item
Fix @code{g77} so it no longer crashes compiling references
-to the @samp{Rand} intrinsic on some systems.
+to the @code{Rand} intrinsic on some systems.
@item
Fix @code{g77} portion of installation process so it works
better on some systems
(those with shells requiring @samp{else true} clauses
-on @samp{if} constructs
+on @code{if} constructs
for the completion code to be set properly).
@end itemize
@end ifclear
@@ -310,7 +318,7 @@ involving @code{COMPLEX} arithmetic
Fix a code-generation bug that afflicted
Intel x86 targets when @samp{-O2} was specified
compiling, for example, an old version of
-the @samp{DNRM2} routine.
+the @code{DNRM2} routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO}
@@ -335,11 +343,11 @@ or given initial values via @code{DATA}.
@itemize @bullet
@ifclear USERVISONLY
@item
-Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
-that wrote one byte beyond the end of its @samp{CHARACTER}
+Fix bugs in the @code{libU77} intrinsic @code{HostNm}
+that wrote one byte beyond the end of its @code{CHARACTER}
argument,
and in the @code{libU77} intrinsics
-@samp{GMTime} and @samp{LTime}
+@code{GMTime} and @code{LTime}
that overwrote their arguments.
@end ifclear
@@ -385,7 +393,7 @@ compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
-use @samp{ENTRY} can be stepped through, line by line,
+use @code{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@item
@@ -503,7 +511,7 @@ Improve documentation and indexing.
@item
The upgrade to @code{libf2c} as of 1998-06-18
should fix a variety of problems, including
-those involving some uses of the @samp{T} format
+those involving some uses of the @code{T} format
specifier, and perhaps some build (porting) problems
as well.
@end ifclear
@@ -515,7 +523,7 @@ as well.
@item
@code{g77} no longer produces incorrect code
and initial values
-for @samp{EQUIVALENCE} and @samp{COMMON}
+for @code{EQUIVALENCE} and @code{COMMON}
aggregates that, due to ``unnatural'' ordering of members
vis-a-vis their types, require initial padding.
@end ifclear
@@ -562,20 +570,20 @@ in @code{libf2c} (@code{libg2c}).
This new information allows, for example,
@kbd{which __g77_length_a} to be used in @code{gdb}
to determine the type of the phantom length argument
-supplied with @samp{CHARACTER} variables.
+supplied with @code{CHARACTER} variables.
This information pertains to internally-generated
type, variable, and other information,
not to the longstanding deficiencies vis-a-vis
-@samp{COMMON} and @samp{EQUIVALENCE}.
+@code{COMMON} and @code{EQUIVALENCE}.
@item
-The F90 @samp{Date_and_Time} intrinsic now is
+The F90 @code{Date_and_Time} intrinsic now is
supported.
@item
-The F90 @samp{System_Clock} intrinsic allows
-the optional arguments (except for the @samp{Count}
+The F90 @code{System_Clock} intrinsic allows
+the optional arguments (except for the @code{Count}
argument) to be omitted.
@ifclear USERVISONLY
@@ -617,7 +625,7 @@ of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
-@itemize --
+@itemize @minus
@item
Support for @code{__restrict__} keyword,
the options @samp{-fargument-alias}, @samp{-fargument-noalias},
@@ -659,11 +667,11 @@ including patches for the @code{gcc} back end.
@ifclear USERVISONLY
@item
-Fix bugs in the @code{libU77} intrinsic @samp{HostNm}
-that wrote one byte beyond the end of its @samp{CHARACTER}
+Fix bugs in the @code{libU77} intrinsic @code{HostNm}
+that wrote one byte beyond the end of its @code{CHARACTER}
argument,
and in the @code{libU77} intrinsics
-@samp{GMTime} and @samp{LTime}
+@code{GMTime} and @code{LTime}
that overwrote their arguments.
@end ifclear
@@ -800,7 +808,7 @@ Improve documentation and indexing.
Upgrade to @code{libf2c} as of 1998-04-20.
This should fix a variety of problems, including
-those involving some uses of the @samp{T} format
+those involving some uses of the @code{T} format
specifier, and perhaps some build (porting) problems
as well.
@end ifclear
@@ -826,7 +834,7 @@ For example, @samp{DO 10 J=2,J} now is compiled correctly.
Fix a code-generation bug that afflicted
Intel x86 targets when @samp{-O2} was specified
compiling, for example, an old version of
-the @samp{DNRM2} routine.
+the @code{DNRM2} routine.
The x87 coprocessor stack was being
mismanaged in cases involving assigned @code{GOTO}
@@ -856,7 +864,7 @@ Fix @code{g77} version of @code{libf2c} so it no longer
produces a spurious @samp{I/O recursion} diagnostic at run time
when an I/O operation (such as @samp{READ *,I}) is interrupted
in a manner that causes the program to be terminated
-via the @samp{f_exit} routine (such as via @kbd{C-c}).
+via the @code{f_exit} routine (such as via @kbd{C-c}).
@end ifclear
@ifclear USERVISONLY
@@ -898,7 +906,7 @@ compile-time constant @code{INTEGER} expression.
@item
Fix @code{g77} @samp{-g} option so procedures that
-use @samp{ENTRY} can be stepped through, line by line,
+use @code{ENTRY} can be stepped through, line by line,
in @code{gdb}.
@ifclear USERVISONLY
@@ -1070,7 +1078,7 @@ of @code{g77} due to their being implemented
via @code{g77}-specific patches to the @code{gcc}
back end in previous releases include:
-@itemize --
+@itemize @minus
@item
Support for the C-language @code{restrict} keyword.
@@ -1233,8 +1241,8 @@ or assigned-@code{GOTO} statement.
@ifclear USERVISONLY
@item
Fix compiler crashes due to using the name of a some
-non-standard intrinsics (such as @samp{FTELL} or
-@samp{FPUTC}) as such and as the name of a procedure
+non-standard intrinsics (such as @code{FTell} or
+@code{FPutC}) as such and as the name of a procedure
or common block.
Such dual use of a name in a program is allowed by
the standard.
@@ -1251,19 +1259,19 @@ the standard.
@c
@c For example, the intrinsic @code{FPUTC} previously was
@c implemented by @code{g77} as a call to the @code{libf2c}
-@c routine @samp{fputc_}.
+@c routine @code{fputc_}.
@c This would conflict with a Fortran procedure named @code{FPUTC}
@c (using default compiler options), and this conflict
@c would cause a crash under certain circumstances.
@c
-@c Now, the intrinsic @code{FPUTC} calls @samp{G77_fputc_0},
-@c which does not conflict with the @samp{fputc_} external
+@c Now, the intrinsic @code{FPUTC} calls @code{G77_fputc_0},
+@c which does not conflict with the @code{fputc_} external
@c that implements a Fortran procedure named @code{FPUTC}.
@c
@c Programs that refer to @code{FPUTC} as an external procedure
@c without supplying their own implementation will link to
-@c the new @code{libf2c} routine @samp{fputc_}, which is
-@c simply a jacket routine that calls @samp{G77_fputc_0}.
+@c the new @code{libf2c} routine @code{fputc_}, which is
+@c simply a jacket routine that calls @code{G77_fputc_0}.
@ifclear USERVISONLY
@item
@@ -1370,7 +1378,7 @@ that have embedded blanks, commas, and so on.
@item
Fix @code{SIGNAL} intrinsic so it accepts an
-optional third @samp{Status} argument.
+optional third @code{Status} argument.
@ifclear USERVISONLY
@item
@@ -1478,7 +1486,7 @@ Support @samp{*f771} entry in @code{gcc} @file{specs} file.
@ifclear USERVISONLY
@item
-Fix typo in @code{make} rule @samp{g77-cross}, used only for
+Fix typo in @code{make} rule @code{g77-cross}, used only for
cross-compiling.
@end ifclear
@@ -1600,12 +1608,12 @@ statements specifying that these names are not intended
to be names of intrinsics.
@item
-The @samp{ALWAYS_FLUSH} macro is no longer defined when
+The @code{ALWAYS_FLUSH} macro is no longer defined when
building @code{libf2c}, which should result in improved
I/O performance, especially over NFS.
@emph{Note:} If you have code that depends on the behavior
-of @code{libf2c} when built with @samp{ALWAYS_FLUSH} defined,
+of @code{libf2c} when built with @code{ALWAYS_FLUSH} defined,
you will have to modify @code{libf2c} accordingly before
building it from this and future versions of @code{g77}.
@@ -1860,10 +1868,10 @@ These are @code{REALPART}, @code{IMAGPART},
@code{LONG}, and @code{SHORT}.
@item
-A new group of intrinsics, @samp{gnu}, has been added
+A new group of intrinsics, @code{gnu}, has been added
to contain the new @code{REALPART}, @code{IMAGPART},
and @code{COMPLEX} intrinsics.
-An old group, @samp{dcp}, has been removed.
+An old group, @code{dcp}, has been removed.
@item
Complain about industry-wide ambiguous references
@@ -1891,8 +1899,8 @@ a new chapter containing information on one, later
more, diagnostics that users are directed to pull
up automatically via a message in the diagnostic itself.
-(Hence the menu item @samp{M} for the node
-@samp{Diagnostics} in the top-level menu of
+(Hence the menu item @code{M} for the node
+@code{Diagnostics} in the top-level menu of
the Info documentation.)
@end ifclear
@end itemize
@@ -1902,7 +1910,7 @@ the Info documentation.)
Information on previous versions is archived
in @file{@value{path-g77}/news.texi}
-following the test of the @samp{DOC-OLDNEWS} macro.
+following the test of the @code{DOC-OLDNEWS} macro.
@end ifclear
@ifset DOC-OLDNEWS
@@ -1917,14 +1925,14 @@ These bugs occurred when assigning the result of an
operation to a complex variable (or array element)
that also served as an input to that operation.
-The operations affected by this bug were: @samp{CONJG()},
-@samp{DCONJG()}, @samp{CCOS()}, @samp{CDCOS()},
-@samp{CLOG()}, @samp{CDLOG()}, @samp{CSIN()}, @samp{CDSIN()},
-@samp{CSQRT()}, @samp{CDSQRT()}, complex division, and
+The operations affected by this bug were: @code{CONJG()},
+@code{DCONJG()}, @code{CCOS()}, @code{CDCOS()},
+@code{CLOG()}, @code{CDLOG()}, @code{CSIN()}, @code{CDSIN()},
+@code{CSQRT()}, @code{CDSQRT()}, complex division, and
raising a @code{DOUBLE COMPLEX} operand to an @code{INTEGER}
power.
(The related generic and @samp{Z}-prefixed intrinsics,
-such as @samp{ZSIN()}, also were affected.)
+such as @code{ZSIN()}, also were affected.)
For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I}
(where @samp{C} is @code{COMPLEX} and @samp{Z} is
@@ -1936,7 +1944,7 @@ For example, @samp{C = CSQRT(C)}, @samp{Z = Z/C}, and @samp{Z = Z**I}
@itemize @bullet
@item
Fix @code{FORMAT} statement parsing so negative values for
-specifiers such as @samp{P} (e.g. @samp{FORMAT(-1PF8.1)})
+specifiers such as @code{P} (e.g. @samp{FORMAT(-1PF8.1)})
are correctly processed as negative.
@item
@@ -2020,7 +2028,7 @@ procedures in @code{libf2c}.
@item
Modify @code{fseek_()} in @code{libf2c} to be more portable
(though, in practice, there might be no systems where this
-matters) and to catch invalid @samp{whence} arguments.
+matters) and to catch invalid @code{whence} arguments.
@item
Some useless warnings from the @samp{-Wunused} option have
@@ -2032,7 +2040,7 @@ on AIX systems by linking with the @samp{-bbigtoc} option.
@item
Abort configuration if @code{gcc} has not been patched
-using the patch file provided in the @samp{gcc/f/gbe/}
+using the patch file provided in the @file{gcc/f/gbe/}
subdirectory.
@item
@@ -2244,7 +2252,7 @@ maintainer's new address is @email{dmg@@bell-labs.com}.
@itemize @bullet
@item
@strong{Fix serious bug} in @samp{g77 -v} command that can cause removal of a
-system's @file{/dev/null} special file if run by user @samp{root}.
+system's @file{/dev/null} special file if run by user @code{root}.
@strong{All users} of version 0.5.16 should ensure that
they have not removed @file{/dev/null} or replaced it with an ordinary
@@ -2283,7 +2291,7 @@ never happen).
@item
Make @code{libf2c} build procedures work on more systems again by
-eliminating unnecessary invocations of @samp{ld -r -x} and @samp{mv}.
+eliminating unnecessary invocations of @samp{ld -r -x} and @code{mv}.
@item
Fix omission of @samp{-funix-intrinsics-@dots{}} options in list of permitted
@@ -2362,7 +2370,7 @@ This is known to fix code invoking @code{ERF()}, @code{ERFC()},
@item
Update @code{libf2c} to include netlib patches through 1995-08-16, and
-@code{#define} @samp{WANT_LEAD_0} to 1 to make @code{g77}-compiled code more
+@code{#define} @code{WANT_LEAD_0} to 1 to make @code{g77}-compiled code more
consistent with other Fortran implementations by outputting
leading zeros in formatted and list-directed output.
@@ -2444,12 +2452,12 @@ and @code{SYSTEM}, append a final argument specifying an @code{INTEGER}
variable or array element (e.g. @samp{CALL SYSTEM('rm foo',ISTAT)}).
@item
-Add new intrinsic group named @samp{unix} to contain the new intrinsics,
+Add new intrinsic group named @code{unix} to contain the new intrinsics,
and by default enable this new group.
@item
-Move @code{LOC()} intrinsic out of the @samp{vxt} group to the new
-@samp{unix} group.
+Move @code{LOC()} intrinsic out of the @code{vxt} group to the new
+@code{unix} group.
@item
Improve @code{g77} so that @samp{g77 -v} by itself (or with
@@ -2706,7 +2714,7 @@ Allow @code{RETURN} in main program unit.
Changes to Hollerith-constant support to obey Appendix C of the
standard:
-@itemize --
+@itemize @minus
@item
Now padded on the right with zeros, not spaces.
@@ -2734,7 +2742,7 @@ to widen to @code{INTEGER}), essentially.
@item
Changes and fixes to typeless-constant support:
-@itemize --
+@itemize @minus
@item
Now treated as a typeless double-length @code{INTEGER} value.
diff --git a/gcc/f/top.c b/gcc/f/top.c
index 6928018..e8f0ce5 100644
--- a/gcc/f/top.c
+++ b/gcc/f/top.c
@@ -235,18 +235,6 @@ ffe_decode_option (argc, argv)
warning ("%s no longer supported -- try -fvxt", opt);
else if (strcmp (&opt[2], "f90-not-vxt") == 0)
warning ("%s no longer supported -- try -fno-vxt -ff90", opt);
- else if (strcmp (&opt[2], "ugly") == 0)
- {
- warning ("%s is overloaded with meanings and likely to be removed;", opt);
- warning ("use only the specific -fugly-* options you need");
- ffe_set_is_ugly_args (TRUE);
- ffe_set_is_ugly_assign (TRUE);
- ffe_set_is_ugly_assumed (TRUE);
- ffe_set_is_ugly_comma (TRUE);
- ffe_set_is_ugly_complex (TRUE);
- ffe_set_is_ugly_init (TRUE);
- ffe_set_is_ugly_logint (TRUE);
- }
else if (strcmp (&opt[2], "no-ugly") == 0)
{
ffe_set_is_ugly_args (FALSE);