OSDN Git Service

remove -fugly, other doc fixes
authorburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Apr 1999 14:09:21 +0000 (14:09 +0000)
committerburley <burley@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 17 Apr 1999 14:09:21 +0000 (14:09 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@26519 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/f/ChangeLog
gcc/f/bugs.texi
gcc/f/ffe.texi
gcc/f/g77.texi
gcc/f/g77install.texi
gcc/f/lang-options.h
gcc/f/news.texi
gcc/f/top.c

index 9bd4289..29caa6e 100644 (file)
@@ -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:
index ccf3a7b..3d4e791 100644 (file)
@@ -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
index 4948050..4108bb8 100644 (file)
@@ -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
index 73a8c2c..8d0a08f 100644 (file)
@@ -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
index c73fc06..cae1fb3 100644 (file)
@@ -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.
index 3f439fd..64e9f63 100644 (file)
@@ -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" )
index 8723157..9520e28 100644 (file)
@@ -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.
 
index 6928018..e8f0ce5 100644 (file)
@@ -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);