From: Mark Mitchell Date: Wed, 13 Jun 2001 18:29:38 +0000 (+0000) Subject: BUGS: Remove. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7e18e1275b72f59201ed7f7a667c1bbcdb2b3829;p=gcc.git BUGS: Remove. * BUGS: Remove. * NEWS: Likewise. From-SVN: r43340 --- diff --git a/gcc/f/BUGS b/gcc/f/BUGS deleted file mode 100644 index fdcb9320f2a..00000000000 --- a/gcc/f/BUGS +++ /dev/null @@ -1,157 +0,0 @@ -_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-3.1 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-3.1 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 -`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 -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'. - - In particular, while this information is intended to apply to the -GCC-3.1 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 `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 -`gcc/gcc/f/INSTALL'. - - 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 - it does warn about this in a `READ' statement). - - * 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 - `CONTINUE' statements as the terminal statement, using the `END DO' - form instead, and so on. - - * Some confusion in diagnostics concerning failing `INCLUDE' - statements from within `INCLUDE''d or `#include''d files. - - * `g77' assumes that `INTEGER(KIND=1)' constants range from `-2**31' - to `2**31-1' (the range for two's-complement 32-bit values), - instead of determining their range from the actual range of the - type for the configuration (and, someday, for the constant). - - Further, it generally doesn't implement the handling of constants - very well in that it makes assumptions about the configuration - that it no longer makes regarding variables (types). - - Included with this item is the fact that `g77' doesn't recognize - that, on IEEE-754/854-compliant systems, `0./0.' should produce a - NaN and no warning instead of the value `0.' and a warning. This - is to be fixed in version 0.6, when `g77' will use the `gcc' back - end's constant-handling mechanisms to replace its own. - - * `g77' uses way too much memory and CPU time to process large - aggregate areas having any initialized elements. - - For example, `REAL A(1000000)' followed by `DATA A(1)/1/' takes up - way too much time and space, including the size of the generated - 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 - uninitialized--significantly. However, even with the - improvements, these cases still require too much memory and CPU - time. - - (Version 0.5.18 also improves cases where the initial values are - zero to a much greater degree, so if the above example ends with - `DATA A(1)/0/', the compile-time performance will be about as good - as it will ever get, aside from unrelated improvements to the - compiler.) - - Note that `g77' does display a warning message to notify the user - before the compiler appears to hang. - - * 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 - string that is the member's value as a character string. - - * When debugging, after starting up the debugger but before being - able to see the source code for the main program unit, the user - must currently set a breakpoint at `MAIN__' (or `MAIN___' or - `MAIN_' if `MAIN__' doesn't exist) and run the program until it - hits the breakpoint. At that point, the main program unit is - activated and about to execute its first executable statement, but - that's the state in which the debugger should start up, as is the - case for languages like C. - - * Debugging `g77'-compiled code using debuggers other than `gdb' is - likely not to work. - - Getting `g77' and `gdb' to work together is a known - problem--getting `g77' to work properly with other debuggers, for - which source code often is unavailable to `g77' developers, seems - like a much larger, unknown problem, and is a lower priority than - making `g77' and `gdb' work together properly. - - On the other hand, information about problems other debuggers have - with `g77' output might make it easier to properly fix `g77', and - perhaps even improve `gdb', so it is definitely welcome. Such - information might even lead to all relevant products working - together properly sooner. - - * `g77' doesn't work perfectly on 64-bit configurations such as the - Digital Semiconductor ("DEC") Alpha. - - This problem is largely resolved as of version 0.5.23. Version - 0.6 should solve most or all remaining problems (such as - cross-compiling involving 64-bit machines). - - * `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 - aligned to a 4-byte boundary, but the processor has no such - requirement (though it is usually good for performance). - - The `gcc' back end needs to provide a wider array of - specifications of alignment requirements and preferences for - targets, and front ends like `g77' should take advantage of this - when it becomes available. - - * The `libf2c' routines that perform some run-time arithmetic on - `COMPLEX' operands were modified circa version 0.5.20 of `g77' to - work properly even in the presence of aliased operands. - - 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_ - aliased operands. - - However, these modifications have reduced performance on targets - such as x86, due to the extra copies of operands involved. - diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index 85ba0e5f57b..a458b28ff49 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,8 @@ +Wed Jun 13 11:22:39 2001 Mark Mitchell + + * BUGS: Remove. + * NEWS: Likewise. + 2001-06-10 Toon Moene * g77install.texi: Remove. diff --git a/gcc/f/NEWS b/gcc/f/NEWS deleted file mode 100644 index f9970e341aa..00000000000 --- a/gcc/f/NEWS +++ /dev/null @@ -1,432 +0,0 @@ -_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-3.1 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 -********************** - - Changes made to recent versions of GNU Fortran are listed below, -with the most recent version first. - - The changes are generally listed in order: - - 1. Code-generation and run-time-library bug-fixes - - 2. Compiler and run-time-library crashes involving valid code that - have been fixed - - 3. New features - - 4. Fixes and enhancements to existing features - - 5. New diagnostics - - 6. Internal improvements - - 7. Miscellany - - This order is not strict--for example, some items involve a -combination of these elements. - - 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. 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 -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'. - - In particular, while this information is intended to apply to the -GCC-3.1 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 -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. - - That's due to attempts to keep this development version of news -about previous `g77' versions up-to-date. - - An online, "live" version of this document (derived directly from -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 2000-11-05: - -In development: -=============== - - * 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. - - * 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 - `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)'. - -In 0.5.25, `GCC' 2.95 (`EGCS' 1.2) versus `EGCS' 1.1.2: -======================================================= - - * `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. - - * `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). - - * `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. - - * `libg2c' (`libf2c') no longer loses track of the file being worked - on during a `BACKSPACE' operation. - - * `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)'. - - * Automatic arrays now seem to be working on HP-UX systems. - - * The `Date' intrinsic now returns the correct result on big-endian - systems. - - * 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. - - * 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'. - - * 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 - bounds checks of array subscripts, as well as of substring start - and end points. - - * `libg2c' now supports building as multilibbed library, which - provides better support for systems that require options such as - `-mieee' to work properly. - - * Source file names with the suffixes `.FOR' and `.FPP' now are - recognized by `g77' as if they ended in `.for' and `.fpp', - respectively. - - * 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 - consistent with the other subroutine forms of `libU77' intrinsics. - - * `g77' now warns about a reference to an intrinsic that has an - interface that is not Year 2000 (Y2K) compliant. Also, `libg2c' - has been changed to increase the likelihood of catching references - to the implementations of these intrinsics using the `EXTERNAL' - mechanism (which would avoid the new warnings). - - * `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_ - double-precision variables and arrays on Intel x86 targets. - - * Even without the `-malign-double' option, `g77' reliably aligns - local double-precision variables that are not in `EQUIVALENCE' - areas and not `SAVE''d. - - * `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. - - * `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. - - * 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 - used before containing binding contour" message. - - * Support for the `-fugly' option has been removed. - - * Improve documentation and indexing, including information on Year - 2000 (Y2K) compliance, and providing more information on internals - of the front end. - - * Upgrade to `libf2c' as of 1999-05-10. - -In 0.5.24 versus 0.5.23: -======================== - - There is no `g77' version 0.5.24 at this time, or planned. 0.5.24 -is the version number designated for bug fixes and, perhaps, some new -features added, to 0.5.23. Version 0.5.23 requires `gcc' 2.8.1, as -0.5.24 was planned to require. - - Due to `EGCS' becoming `GCC' (which is now an acronym for "GNU -Compiler Collection"), and `EGCS' 1.2 becoming officially designated -`GCC' 2.95, there seems to be no need for an actual 0.5.24 release. - - To reduce the confusion already resulting from use of 0.5.24 to -designate `g77' versions within `EGCS' versions 1.0 and 1.1, as well as -in versions of `g77' documentation and notices during that period, -"mainline" `g77' version numbering resumes at 0.5.25 with `GCC' 2.95 -(`EGCS' 1.2), skipping over 0.5.24 as a placeholder version number. - - To repeat, there is no `g77' 0.5.24, but there is now a 0.5.25. -Please remain calm and return to your keypunch units. - -In `EGCS' 1.1.2 versus `EGCS' 1.1.1: -==================================== - - * Fix the `IDate' intrinsic (VXT) (in `libg2c') so the returned year - is in the documented, non-Y2K-compliant range of 0-99, instead of - being returned as 100 in the year 2000. - - * 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 `EGCS' 1.1.1 versus `EGCS' 1.1: -================================== - - * Fix `libg2c' so it performs an implicit `ENDFILE' operation (as - appropriate) whenever a `REWIND' is done. - - (This bug was introduced in 0.5.23 and `egcs' 1.1 in `g77''s - version of `libf2c'.) - - * Fix `libg2c' so it no longer crashes with a spurious diagnostic - upon doing any I/O following a direct formatted write. - - (This bug was introduced in 0.5.23 and `egcs' 1.1 in `g77''s - version of `libf2c'.) - - * Fix `g77' so it no longer crashes compiling references to the - `Rand' intrinsic on some systems. - - * Fix `g77' portion of installation process so it works better on - some systems (those with shells requiring `else true' clauses on - `if' constructs for the completion code to be set properly). - -In `EGCS' 1.1 versus `EGCS' 1.0.3: -================================== - - * 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. - - * 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'. - - * 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'. - - * `CASE DEFAULT' no longer crashes `g77'. - - * The `-Wunused' option no longer issues a spurious warning about - the "master" procedure generated by `g77' for procedures - containing `ENTRY' statements. - - * Support `FORMAT(I)' when EXPR is a compile-time constant - `INTEGER' expression. - - * Fix `g77' `-g' option so procedures that use `ENTRY' can be - stepped through, line by line, in `gdb'. - - * Allow any `REAL' argument to intrinsics `Second' and `CPU_Time'. - - * Use `tempnam', if available, to open scratch files (as in - `OPEN(STATUS='SCRATCH')') so that the `TMPDIR' environment - variable, if present, is used. - - * `g77''s version of `libf2c' separates out the setting of global - state (such as command-line arguments and signal handling) from - `main.o' into distinct, new library archive members. - - This should make it easier to write portable applications that - have their own (non-Fortran) `main()' routine properly set up the - `libf2c' environment, even when `libf2c' (now `libg2c') is a - shared library. - - * `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. - - * `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. - - * 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. - - * 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 - `netlib' they wish to use on a case-by-case basis. See the - installation documentation for more information. - - * The `g77' command now expects the run-time library to be named - `libg2c.a' instead of `libf2c.a', to ensure that a version other - than the one built and installed as part of the same `g77' version - is picked up. - - * 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. - - * `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 - prevent inadvertent use of the resulting, probably buggy, programs. - These mostly include diagnostics about use of unsupported features - in the `OPEN', `INQUIRE', `READ', and `WRITE' statements, and - about truncations of various sorts of constants. - - * 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'. - - * Improve documentation and indexing. - - * 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: -================================== - - * 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'. - - * `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. - - * Fix `g77' crash compiling code containing the construct - `CMPLX(0.)' or similar. - - * `g77' no longer crashes when compiling code containing - specification statements such as `INTEGER(KIND=7) PTR'. - - * `g77' no longer crashes when compiling code such as `J = SIGNAL(1, - 2)'. - - * `g77' now treats `%LOC(EXPR)' and `LOC(EXPR)' as "ordinary" - expressions when they are used as arguments in procedure calls. - This change applies only to global (filewide) analysis, making it - consistent with how `g77' actually generates code for these cases. - - Previously, `g77' treated these expressions as denoting special - "pointer" arguments for the purposes of filewide analysis. - - * Fix `g77' crash (or apparently infinite run-time) when compiling - certain complicated expressions involving `COMPLEX' arithmetic - (especially multiplication). - - * Align static double-precision variables and arrays on Intel x86 - targets regardless of whether `-malign-double' is specified. - - Generally, this affects only local variables and arrays having the - `SAVE' attribute or given initial values via `DATA'. - - * The `g77' driver now ensures that `-lg2c' is specified in the link - phase prior to any occurrence of `-lm'. This prevents - accidentally linking to a routine in the SunOS4 `-lm' library when - the generated code wants to link to the one in `libf2c' (`libg2c'). - - * `g77' emits more debugging information when `-g' is used. - - This new information allows, for example, `which __g77_length_a' - to be used in `gdb' to determine the type of the phantom length - argument supplied with `CHARACTER' variables. - - This information pertains to internally-generated type, variable, - and other information, not to the longstanding deficiencies - vis-a-vis `COMMON' and `EQUIVALENCE'. - - * The F90 `Date_and_Time' intrinsic now is supported. - - * The F90 `System_Clock' intrinsic allows the optional arguments - (except for the `Count' argument) to be omitted. - - * Upgrade to `libf2c' as of 1998-06-18. - - * Improve documentation and indexing. - -In previous versions: -===================== - - Information on previous versions is not provided in this -`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. -