Bugs in GNU Fortran
*******************
- This section identifies bugs that `g77' *users* might run into.
-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.
+ This section identifies bugs that `g77' *users* might run into in
+version {No Value For "version-g77"} 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', *Note News
+About GNU Fortran: News.
For information on bugs that might afflict people who configure,
port, build, and install `g77', *Note Problems Installing::.
- * `g77' sometimes crashes when compiling code containing the
- construct `CMPLX(0.)' or similar. This is a `gcc' back-end bug.
- It can be worked around using `-fno-emulate-complex', though that
- might trigger other, older bugs. Compiling without optimization
- is another work-around.
-
- Fixed in `egcs' 1.1.
-
- * Automatic arrays aren't working on HP-UX systems, at least in
- HP-UX version 10.20. Writing into them apparently causes
+ * Automatic arrays possibly aren't working on HP-UX systems, at
+ least in HP-UX version 10.20. Writing into them apparently causes
over-writing of statically declared data in the main program.
This probably means the arrays themselves are being
under-allocated, or pointers to them being improperly handled,
e.g. not passed to other procedures as they should be.
- * Some Fortran code has been found to be miscompiled by `g77' built
- on `gcc' version 2.8.1 on m68k-next-nextstep3 configurations when
- using the `-O2' option. Even a C function is known to miscompile
- on that configuration when using the `-O2 -funroll-loops' options.
-
- Fixed in `egcs'.
-
- * A code-generation bug afflicts Intel x86 targets when `-O2' is
- specified compiling, for example, an old version of the `DNRM2'
- routine. The x87 coprocessor stack is being mismanaged in cases
- where assigned `GOTO' and `ASSIGN' are involved.
-
- Fixed in `egcs' version 1.1.
-
* `g77' fails to warn about use of a "live" iterative-DO variable as
an implied-DO variable in a `WRITE' or `PRINT' statement (although
it does warn about this in a `READ' statement).
- * A compiler crash, or apparently infinite run time, can result when
- compiling complicated expressions involving `COMPLEX' arithmetic
- (especially multiplication).
-
- Fixed in `egcs' version 1.1.
-
* Something about `g77''s straightforward handling of label
references and definitions sometimes prevents the GBE from
unrolling loops. Until this is solved, try inserting or removing
the same "broken" mechanism as that used by versions of `g77'
prior to 0.5.20.
- * `g77' sometimes produces invalid assembler code when using the
- `-fPIC' option (such as compiling for ELF targets) on the Intel
- x86 architecture target. The symptom is that the assembler
- complains about invalid opcodes. This bug is in the `gcc' back
- end.
-
- Fixed in `egcs' version 1.0.2.
-
* `g77' currently inserts needless padding for things like `COMMON
A,IPAD' where `A' is `CHARACTER*1' and `IPAD' is `INTEGER(KIND=1)'
on machines like x86, because the back end insists that `IPAD' be
==============
* Fix `g77' so it no longer crashes when compiling I/O statements
- with `IOSTAT=J', where J is other than default `INTEGER' (such as
- `INTEGER*2'). Instead, it issues a diagnostic.
+ 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.
+
+ * The `-ax' option is now obeyed when compiling Fortran programs.
+ (It is passed to the `f771' driver.)
* Source file names with the suffixes `.FOR' and `.FPP' now are
recognized by `g77' as if they ended in `.for' and `.fpp',
* Improve documentation and indexing, including information on Year
2000 (Y2K) compliance.
+In 0.5.24 and `egcs' 1.1.2 (versus 0.5.23 and 1.1.1):
+=====================================================
+
+ * Fix the `Date_and_Time' intrinsic (in `libg2c') to return the
+ milliseconds value properly in VALUES(8).
+
+ * Fix the `LStat' intrinsic (in `libg2c') to return device-ID
+ information properly in SARRAY(7).
+
+ * Improve documentation.
+
In 0.5.24 and `egcs' 1.1.1 (versus 0.5.23 and 1.1):
===================================================
* Fix `DTime' intrinsic so as not to truncate results to integer
values (on some systems).
+ * Some Fortran code, miscompiled by `g77' built on `gcc' version
+ 2.8.1 on m68k-next-nextstep3 configurations when using the `-O2'
+ option, is now compiled correctly. It is believed that a C
+ function known to miscompile on that configuration when using the
+ `-O2 -funroll-loops' options also is now compiled correctly.
+
* Remove support for non-`egcs' versions of `gcc'.
* Remove support for the `--driver' option, as `g77' now does all