remove -fugly, other doc fixes
From-SVN: r26519
This commit is contained in:
parent
8a19a44a1f
commit
4e6a144034
@ -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:
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
290
gcc/f/g77.texi
290
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.
|
||||
|
||||
It might also serve as a hint to the compiler that placing
|
||||
even a very large array on the stack is acceptable.
|
||||
@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.
|
||||
|
||||
Perhaps it should disallow @code{DATA}
|
||||
or other specification of any initial values
|
||||
for affected variables as well.
|
||||
@code{AUTOMATIC} would not, by itself, designate the containing procedure
|
||||
as recursive.
|
||||
|
||||
@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).
|
||||
|
||||
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
|
||||
|
@ -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.
|
||||
|
@ -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" )
|
||||
|
132
gcc/f/news.texi
132
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.
|
||||
|
||||
|
12
gcc/f/top.c
12
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);
|
||||
|
Loading…
Reference in New Issue
Block a user