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