Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
4e6a1440
Commit
4e6a1440
authored
Apr 17, 1999
by
Craig Burley
Committed by
Craig Burley
Apr 17, 1999
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
remove -fugly, other doc fixes
From-SVN: r26519
parent
8a19a44a
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
298 additions
and
248 deletions
+298
-248
gcc/f/ChangeLog
+19
-0
gcc/f/bugs.texi
+5
-5
gcc/f/ffe.texi
+12
-8
gcc/f/g77.texi
+161
-129
gcc/f/g77install.texi
+30
-30
gcc/f/lang-options.h
+1
-2
gcc/f/news.texi
+70
-62
gcc/f/top.c
+0
-12
No files found.
gcc/f/ChangeLog
View file @
4e6a1440
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:
...
...
gcc/f/bugs.texi
View file @
4e6a1440
...
...
@@ -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
...
...
gcc/f/ffe.texi
View file @
4e6a1440
@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
...
...
gcc/f/g77.texi
View file @
4e6a1440
...
...
@@ -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
-
f
ugly
-
f
no
-
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
...
...
gcc/f/g77install.texi
View file @
4e6a1440
...
...
@@ -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
.
...
...
gcc/f/lang-options.h
View file @
4e6a1440
...
...
@@ -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"
)
...
...
gcc/f/news.texi
View file @
4e6a1440
...
...
@@ -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{
FPUT
C
}
)
as
such
and
as
the
name
of
a
procedure
non
-
standard
intrinsics
(
such
as
@
code{
FTell
}
or
@
code{
FPut
C
}
)
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
(
-
1
PF8
.
1
)})
specifiers
such
as
@
code
{
P
}
(
e
.
g
.
@samp
{
FORMAT
(
-
1
PF8
.
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
.
...
...
gcc/f/top.c
View file @
4e6a1440
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment