-*Note:* This file is automatically generated from the files
-`bugs0.texi' and `bugs.texi'. `BUGS' is *not* a source file, although
+_Note:_ This file is automatically generated from the files
+`bugs0.texi' and `bugs.texi'. `BUGS' is _not_ a source file, although
it is normally included within source distributions.
- This file lists known bugs in the GCC-2.95 version of the GNU
-Fortran compiler. Copyright (C) 1995, 1996, 1997, 1998,
-1999 Free Software Foundation,
-Inc. You may copy, distribute, and modify it freely as long as you
-preserve this copyright notice and permission notice.
+ This file lists known bugs in the GCC-2.97 version of the GNU
+Fortran compiler. Copyright (C) 1995,1996,1997,1998,1999,2000 Free
+Software Foundation, Inc. You may copy, distribute, and modify it
+freely as long as you preserve this copyright notice and permission
+notice.
Known Bugs In GNU Fortran
*************************
- This section identifies bugs that `g77' *users* might run into in
-the GCC-2.95 version of `g77'. This includes bugs that are actually in
+ This section identifies bugs that `g77' _users_ might run into in
+the GCC-2.97 version of `g77'. This includes bugs that are actually in
the `gcc' back end (GBE) or in `libf2c', because those sets of code are
at least somewhat under the control of (and necessarily intertwined
with) `g77', so it isn't worth separating them out.
- For information on bugs in *other* versions of `g77', see
-`egcs/gcc/f/NEWS'. There, lists of bugs fixed in various versions of
+ For information on bugs in _other_ versions of `g77', see
+`gcc/gcc/f/NEWS'. There, lists of bugs fixed in various versions of
`g77' can help determine what bugs existed in prior versions.
- *Warning:* The information below is still under development, and
+ _Warning:_ The information below is still under development, and
might not accurately reflect the `g77' code base of which it is a part.
Efforts are made to keep it somewhat up-to-date, but they are
particularly concentrated on any version of this information that is
-distributed as part of a *released* `g77'.
+distributed as part of a _released_ `g77'.
In particular, while this information is intended to apply to the
-GCC-2.95 version of `g77', only an official *release* of that version
+GCC-2.97 version of `g77', only an official _release_ of that version
is expected to contain documentation that is most consistent with the
`g77' product in that version.
An online, "live" version of this document (derived directly from
-the mainline, development version of `g77' within `egcs') is available
-via `http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html'. Follow the
-"Known Bugs" link.
+the mainline, development version of `g77' within `gcc') is available
+via `http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html'. Follow
+the "Known Bugs" link.
For information on bugs that might afflict people who configure,
port, build, and install `g77', see "Problems Installing" in
-`egcs/gcc/f/INSTALL'.
+`gcc/gcc/f/INSTALL'.
- The following information was last updated on 1999-06-28:
+ The following information was last updated on 2000-11-05:
* `g77' fails to warn about use of a "live" iterative-DO variable as
an implied-DO variable in a `WRITE' or `PRINT' statement (although
assembler file. This is to be mitigated somewhat in version 0.6.
Version 0.5.18 improves cases like this--specifically, cases of
- *sparse* initialization that leave large, contiguous areas
+ _sparse_ initialization that leave large, contiguous areas
uninitialized--significantly. However, even with the
improvements, these cases still require too much memory and CPU
time.
Note that `g77' does display a warning message to notify the user
before the compiler appears to hang.
- * `g77' doesn't emit variable and array members of common blocks for
- use with a debugger (the `-g' command-line option). The code is
- present to do this, but doesn't work with at least one debug
- format--perhaps it works with others. And it turns out there's a
- similar bug for local equivalence areas, so that has been disabled
- as well.
+ * Previous versions of `g77' didn't emit information on variable and
+ array members of common blocks and equivalences for use with a
+ debugger (the `-g' command-line option). As of the version of
+ `g77' shipped with version 3.0 of `GCC', this is corrected.
As of Version 0.5.19, a temporary kludge solution is provided
whereby some rudimentary information on a member is written as a
While the `g77' and `netlib' versions of `libf2c' differ on how
this is accomplished, the main differences are that we believe the
- `g77' version works properly even in the presence of *partially*
+ `g77' version works properly even in the presence of _partially_
aliased operands.
However, these modifications have reduced performance on targets
such as x86, due to the extra copies of operands involved.
-
+
-*Note:* This file is automatically generated from the files
-`news0.texi' and `news.texi'. `NEWS' is *not* a source file, although
+_Note:_ This file is automatically generated from the files
+`news0.texi' and `news.texi'. `NEWS' is _not_ a source file, although
it is normally included within source distributions.
- This file lists news about the GCC-2.95 version (and some other
-versions) of the GNU Fortran compiler. Copyright (C) 1995, 1996, 1997,
-1998, 1999 Free
-Software Foundation, Inc. You may copy, distribute, and modify it
-freely as long as you preserve this copyright notice and permission
-notice.
+ This file lists news about the GCC-2.97 version (and some other
+versions) of the GNU Fortran compiler. Copyright (C)
+1995,1996,1997,1998,1999,2000 Free Software Foundation, Inc. You may
+copy, distribute, and modify it freely as long as you preserve this
+copyright notice and permission notice.
News About GNU Fortran
**********************
Note that two variants of `g77' are tracked below. The `egcs'
variant is described vis-a-vis previous versions of `egcs' and/or an
-official FSF version, as appropriate.
+official FSF version, as appropriate. Note that all such variants are
+now obsolete - the information is retained here only for its historical
+value.
Therefore, `egcs' versions sometimes have multiple listings to help
clarify how they differ from other versions, though this can make
getting a complete picture of what a particular `egcs' version contains
somewhat more difficult.
- *Warning:* The information below is still under development, and
+ _Warning:_ The information below is still under development, and
might not accurately reflect the `g77' code base of which it is a part.
Efforts are made to keep it somewhat up-to-date, but they are
particularly concentrated on any version of this information that is
-distributed as part of a *released* `g77'.
+distributed as part of a _released_ `g77'.
In particular, while this information is intended to apply to the
-GCC-2.95 version of `g77', only an official *release* of that version
+GCC-2.97 version of `g77', only an official _release_ of that version
is expected to contain documentation that is most consistent with the
`g77' product in that version.
- Nevertheless, information on *previous* releases of `g77', below, is
+ Nevertheless, information on _previous_ releases of `g77', below, is
likely to be more up-to-date and accurate than the equivalent
information that accompanied those releases, assuming the last-updated
date of the information below is later than the dates of those releases.
about previous `g77' versions up-to-date.
An online, "live" version of this document (derived directly from
-the mainline, development version of `g77' within `egcs') is available
-at `http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'.
+the mainline, development version of `g77' within `gcc') is available at
+`http://www.gnu.org/software/gcc/onlinedocs/g77_news.html'.
- The following information was last updated on 1999-07-08:
+ The following information was last updated on 2000-11-05:
In development:
===============
- 1. The `TtyNam' intrinsics now set NAME to all spaces (at run time)
+ * Using options `-g', `-ggdb' or `-gdwarf[-2]' (where appropriate
+ for your target) now also enables debugging information for COMMON
+ BLOCK and EQUIVALENCE items to be emitted.
+
+ * The `TtyNam' intrinsics now set NAME to all spaces (at run time)
if the system has no `ttyname' implementation available.
- 2. Upgrade to `libf2c' as of 1999-06-28.
+ * Upgrade to `libf2c' as of 1999-06-28.
This fixes a bug whereby input to a `NAMELIST' read involving a
repeat count, such as `K(5)=10*3', was not properly handled by
In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versus `EGCS' 1.1.2:
=======================================================
- 3. `g77' no longer generates bad code for assignments, or other
+ * `g77' no longer generates bad code for assignments, or other
conversions, of `REAL' or `COMPLEX' constant expressions to type
`INTEGER(KIND=2)' (often referred to as `INTEGER*8').
For example, `INTEGER*8 J; J = 4E10' now works as documented.
- 4. `g77' no longer truncates `INTEGER(KIND=2)' (usually `INTEGER*8')
+ * `g77' no longer truncates `INTEGER(KIND=2)' (usually `INTEGER*8')
subscript expressions when evaluating array references on systems
with pointers widers than `INTEGER(KIND=1)' (such as Alphas).
- 5. `g77' no longer generates bad code for an assignment to a
+ * `g77' no longer generates bad code for an assignment to a
`COMPLEX' variable or array that partially overlaps one or more of
the sources of the same assignment (a very rare construction). It
now assigns through a temporary, in cases where such partial
overlap is deemed possible.
- 6. `libg2c' (`libf2c') no longer loses track of the file being worked
+ * `libg2c' (`libf2c') no longer loses track of the file being worked
on during a `BACKSPACE' operation.
- 7. `libg2c' (`libf2c') fixes a bug whereby input to a `NAMELIST' read
+ * `libg2c' (`libf2c') fixes a bug whereby input to a `NAMELIST' read
involving a repeat count, such as `K(5)=10*3', was not properly
handled by `libf2c'. The first item was written to `K(5)', but
the remaining nine were written elsewhere (still within the array),
not necessarily starting at `K(6)'.
- 8. Automatic arrays now seem to be working on HP-UX systems.
+ * Automatic arrays now seem to be working on HP-UX systems.
- 9. The `Date' intrinsic now returns the correct result on big-endian
+ * The `Date' intrinsic now returns the correct result on big-endian
systems.
- 10. Fix `g77' so it no longer crashes when compiling I/O statements
+ * Fix `g77' so it no longer crashes when compiling I/O statements
using keywords that define `INTEGER' values, such as `IOSTAT=J',
where J is other than default `INTEGER' (such as `INTEGER*2').
Instead, it issues a diagnostic.
- 11. Fix `g77' so it properly handles `DATA A/RPT*VAL/', where RPT is
+ * Fix `g77' so it properly handles `DATA A/RPT*VAL/', where RPT is
not default `INTEGER', such as `INTEGER*2', instead of producing a
spurious diagnostic. Also fix `DATA (A(I),I=1,N)', where `N' is
not default `INTEGER' to work instead of crashing `g77'.
- 12. The `-ax' option is now obeyed when compiling Fortran programs.
+ * The `-ax' option is now obeyed when compiling Fortran programs.
(It is passed to the `f771' driver.)
* The new `-fbounds-check' option causes `g77' to compile run-time
recognized by `g77' as if they ended in `.for' and `.fpp',
respectively.
- * The order of arguments to the *subroutine* forms of the `CTime',
+ * The order of arguments to the _subroutine_ forms of the `CTime',
`DTime', `ETime', and `TtyNam' intrinsics has been swapped. The
argument serving as the returned value for the corresponding
- function forms now is the *second* argument, making these
+ function forms now is the _second_ argument, making these
consistent with the other subroutine forms of `libU77' intrinsics.
* `g77' now warns about a reference to an intrinsic that has an
to the implementations of these intrinsics using the `EXTERNAL'
mechanism (which would avoid the new warnings).
- 13. `g77' now warns about a reference to a function when the
- corresponding *subsequent* function program unit disagrees with
+ * `g77' now warns about a reference to a function when the
+ corresponding _subsequent_ function program unit disagrees with
the reference concerning the type of the function.
* `-fno-emulate-complex' is now the default option. This should
result in improved performance of code that uses the `COMPLEX'
data type.
- * The `-malign-double' option now reliably aligns *all*
+ * The `-malign-double' option now reliably aligns _all_
double-precision variables and arrays on Intel x86 targets.
- 14. Even without the `-malign-double' option, `g77' reliably aligns
+ * Even without the `-malign-double' option, `g77' reliably aligns
local double-precision variables that are not in `EQUIVALENCE'
areas and not `SAVE''d.
- 15. `g77' now open-codes ("inlines") division of `COMPLEX' operands
+ * `g77' now open-codes ("inlines") division of `COMPLEX' operands
instead of generating a run-time call to the `libf2c' routines
`c_div' or `z_div', unless the `-Os' option is specified.
* `g77' no longer generates code to maintain `errno', a C-language
concept, when performing operations such as the `SqRt' intrinsic.
- 16. `g77' developers can temporarily use the `-fflatten-arrays' option
+ * `g77' developers can temporarily use the `-fflatten-arrays' option
to compare how the compiler handles code generation using C-like
constructs as compared to the Fortran-like method constructs
normally used.
- 17. A substantial portion of the `g77' front end's code-generation
+ * A substantial portion of the `g77' front end's code-generation
component was rewritten. It now generates code using facilities
more robustly supported by the `gcc' back end. One effect of this
rewrite is that some codes no longer produce a spurious "label LAB
* Support for the `-fugly' option has been removed.
- 18. Improve documentation and indexing, including information on Year
+ * Improve documentation and indexing, including information on Year
2000 (Y2K) compliance, and providing more information on internals
of the front end.
- 19. Upgrade to `libf2c' as of 1999-05-10.
+ * Upgrade to `libf2c' as of 1999-05-10.
In 0.5.24 versus 0.5.23:
========================
In `EGCS' 1.1 versus `EGCS' 1.0.3:
==================================
- 20. Fix bugs in the `libU77' intrinsic `HostNm' that wrote one byte
+ * Fix bugs in the `libU77' intrinsic `HostNm' that wrote one byte
beyond the end of its `CHARACTER' argument, and in the `libU77'
intrinsics `GMTime' and `LTime' that overwrote their arguments.
- 21. Assumed arrays with negative bounds (such as `REAL A(-1:*)') no
+ * Assumed arrays with negative bounds (such as `REAL A(-1:*)') no
longer elicit spurious diagnostics from `g77', even on systems
with pointers having different sizes than integers.
This bug is not known to have existed in any recent version of
`gcc'. It was introduced in an early release of `egcs'.
- 22. Valid combinations of `EXTERNAL', passing that external as a dummy
+ * Valid combinations of `EXTERNAL', passing that external as a dummy
argument without explicitly giving it a type, and, in a subsequent
program unit, referencing that external as an external function
with a different type no longer crash `g77'.
- 23. `CASE DEFAULT' no longer crashes `g77'.
+ * `CASE DEFAULT' no longer crashes `g77'.
- 24. The `-Wunused' option no longer issues a spurious warning about
+ * The `-Wunused' option no longer issues a spurious warning about
the "master" procedure generated by `g77' for procedures
containing `ENTRY' statements.
`libf2c' environment, even when `libf2c' (now `libg2c') is a
shared library.
- 25. `g77' no longer installs the `f77' command and `f77.1' man page in
+ * `g77' no longer installs the `f77' command and `f77.1' man page in
the `/usr' or `/usr/local' heirarchy, even if the `f77-install-ok'
file exists in the source or build directory. See the
installation documentation for more information.
- 26. `g77' no longer installs the `libf2c.a' library and `f2c.h'
+ * `g77' no longer installs the `libf2c.a' library and `f2c.h'
include file in the `/usr' or `/usr/local' heirarchy, even if the
`f2c-install-ok' or `f2c-exists-ok' files exist in the source or
build directory. See the installation documentation for more
information.
- 27. The `libf2c.a' library produced by `g77' has been renamed to
+ * The `libf2c.a' library produced by `g77' has been renamed to
`libg2c.a'. It is installed only in the `gcc' "private" directory
heirarchy, `gcc-lib'. This allows system administrators and users
to choose which version of the `libf2c' library from `netlib' they
wish to use on a case-by-case basis. See the installation
documentation for more information.
- 28. The `f2c.h' include (header) file produced by `g77' has been
+ * The `f2c.h' include (header) file produced by `g77' has been
renamed to `g2c.h'. It is installed only in the `gcc' "private"
directory heirarchy, `gcc-lib'. This allows system administrators
and users to choose which version of the include file from
than the one built and installed as part of the same `g77' version
is picked up.
- 29. During the configuration and build process, `g77' creates
+ * During the configuration and build process, `g77' creates
subdirectories it needs only as it needs them. Other cleaning up
of the configuration and build process has been performed as well.
- 30. `install-info' now used to update the directory of Info
+ * `install-info' now used to update the directory of Info
documentation to contain an entry for `g77' (during installation).
* Some diagnostics have been changed from warnings to errors, to
in the `OPEN', `INQUIRE', `READ', and `WRITE' statements, and
about truncations of various sorts of constants.
- 31. Improve compilation of `FORMAT' expressions so that a null byte is
+ * Improve compilation of `FORMAT' expressions so that a null byte is
appended to the last operand if it is a constant. This provides a
cleaner run-time diagnostic as provided by `libf2c' for statements
like `PRINT '(I1', 42'.
- 32. Improve documentation and indexing.
+ * Improve documentation and indexing.
- 33. The upgrade to `libf2c' as of 1998-06-18 should fix a variety of
+ * The upgrade to `libf2c' as of 1998-06-18 should fix a variety of
problems, including those involving some uses of the `T' format
specifier, and perhaps some build (porting) problems as well.
In `EGCS' 1.1 versus `g77' 0.5.23:
==================================
- 34. Fix a code-generation bug that afflicted Intel x86 targets when
+ * Fix a code-generation bug that afflicted Intel x86 targets when
`-O2' was specified compiling, for example, an old version of the
`DNRM2' routine.
The x87 coprocessor stack was being mismanaged in cases involving
assigned `GOTO' and `ASSIGN'.
- 35. `g77' no longer produces incorrect code and initial values for
+ * `g77' no longer produces incorrect code and initial values for
`EQUIVALENCE' and `COMMON' aggregates that, due to "unnatural"
ordering of members vis-a-vis their types, require initial padding.
- 36. Fix `g77' crash compiling code containing the construct
+ * Fix `g77' crash compiling code containing the construct
`CMPLX(0.)' or similar.
- 37. `g77' no longer crashes when compiling code containing
+ * `g77' no longer crashes when compiling code containing
specification statements such as `INTEGER(KIND=7) PTR'.
- 38. `g77' no longer crashes when compiling code such as `J = SIGNAL(1,
+ * `g77' no longer crashes when compiling code such as `J = SIGNAL(1,
2)'.
* `g77' now treats `%LOC(EXPR)' and `LOC(EXPR)' as "ordinary"
Previously, `g77' treated these expressions as denoting special
"pointer" arguments for the purposes of filewide analysis.
- 39. Fix `g77' crash (or apparently infinite run-time) when compiling
+ * Fix `g77' crash (or apparently infinite run-time) when compiling
certain complicated expressions involving `COMPLEX' arithmetic
(especially multiplication).
* The F90 `System_Clock' intrinsic allows the optional arguments
(except for the `Count' argument) to be omitted.
- 40. Upgrade to `libf2c' as of 1998-06-18.
+ * Upgrade to `libf2c' as of 1998-06-18.
- 41. Improve documentation and indexing.
+ * Improve documentation and indexing.
In previous versions:
=====================
Information on previous versions is not provided in this
-`egcs/gcc/f/NEWS' file, to keep it short. See `egcs/gcc/f/news.texi',
-or any of its other derivations (Info, HTML, dvi forms) for such
+`gcc/gcc/f/NEWS' file, to keep it short. See `gcc/gcc/f/news.texi', or
+any of its other derivations (Info, HTML, dvi forms) for such
information.