diff options
Diffstat (limited to 'contrib/gcc/f/bugs.texi')
-rw-r--r-- | contrib/gcc/f/bugs.texi | 204 |
1 files changed, 69 insertions, 135 deletions
diff --git a/contrib/gcc/f/bugs.texi b/contrib/gcc/f/bugs.texi index 52c9287..3f4cd90 100644 --- a/contrib/gcc/f/bugs.texi +++ b/contrib/gcc/f/bugs.texi @@ -1,20 +1,40 @@ -@c Copyright (C) 1995-1998 Free Software Foundation, Inc. +@c Copyright (C) 1995-1999 Free Software Foundation, Inc. @c This is part of the G77 manual. @c For copying conditions, see the file g77.texi. @c The text of this file appears in the file BUGS @c in the G77 distribution, as well as in the G77 manual. -@c 1999-03-13 +@c Keep this the same as the dates above, since it's used +@c in the standalone derivations of this file (e.g. BUGS). +@set copyrights-bugs 1995-1999 -@ifset BUGSONLY -@set which-g77 @code{egcs}-1.1.2 +@set last-update-bugs 1999-06-29 + +@include root.texi + +@ifset DOC-BUGS +@c The immediately following lines apply to the BUGS file +@c which is derived from this file. +@emph{Note:} This file is automatically generated from the files +@file{bugs0.texi} and @file{bugs.texi}. +@file{BUGS} is @emph{not} a source file, +although it is normally included within source distributions. + +This file lists known bugs in the @value{which-g77} version +of the GNU Fortran compiler. +Copyright (C) @value{copyrights-bugs} Free Software Foundation, Inc. +You may copy, distribute, and modify it freely as long as you preserve +this copyright notice and permission notice. + +@node Top,,, (dir) +@chapter Known Bugs In GNU Fortran @end ifset -@ifclear BUGSONLY -@node Actual Bugs -@section Actual Bugs We Haven't Fixed Yet -@end ifclear +@ifset DOC-G77 +@node Known Bugs +@section Known Bugs In GNU Fortran +@end ifset This section identifies bugs that @code{g77} @emph{users} might run into in the @value{which-g77} version @@ -25,97 +45,64 @@ sets of code are at least somewhat under the control of (and necessarily intertwined with) @code{g77}, so it isn't worth separating them out. -@ifset last-up-date +@ifset DOC-G77 For information on bugs in @emph{other} versions of @code{g77}, -@ref{News,,News About GNU Fortran}. +see @ref{News,,News About GNU Fortran}. +There, lists of bugs fixed in various versions of @code{g77} +can help determine what bugs existed in prior versions. @end ifset -@ifset BUGSONLY +@ifset DOC-BUGS For information on bugs in @emph{other} versions of @code{g77}, -see @file{egcs/gcc/f/NEWS}. +see @file{@value{path-g77}/NEWS}. +There, lists of bugs fixed in various versions of @code{g77} +can help determine what bugs existed in prior versions. +@end ifset + +@ifset DEVELOPMENT +@emph{Warning:} The information below is still under development, +and might not accurately reflect the @code{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 @emph{released} @code{g77}. + +In particular, while this information is intended to apply to +the @value{which-g77} version of @code{g77}, +only an official @emph{release} of that version +is expected to contain documentation that is +most consistent with the @code{g77} product in that version. @end ifset An online, ``live'' version of this document -(derived directly from the up-to-date mainline version +(derived directly from the mainline, development version of @code{g77} within @code{egcs}) -is available at -@uref{http://egcs.cygnus.com/onlinedocs/g77_bugs.html}. +is available via +@uref{http://www.gnu.org/software/gcc/onlinedocs/g77_bugs.html}. +Follow the ``Known Bugs'' link. -@ifset last-up-date +@ifset DOC-G77 For information on bugs that might afflict people who configure, port, build, and install @code{g77}, -@ref{Problems Installing}. +see @ref{Problems Installing}. @end ifset -@ifset BUGSONLY +@ifset DOC-BUGS For information on bugs that might afflict people who configure, port, build, and install @code{g77}, -see ``Problems Installing'' in @file{egcs/gcc/f/INSTALL}. +see "Problems Installing" in @file{@value{path-g77}/INSTALL}. @end ifset -@itemize @bullet -@item -@code{g77} generates bad code for assignments, -or other conversions, -of @code{REAL} or @code{COMPLEX} constant expressions -to type @code{INTEGER(KIND=2)} -(often referred to as @code{INTEGER*8}). - -For example, @samp{INTEGER*8 J; J = 4E10} is miscompiled -on some systems---the wrong value is stored in @var{J}. - -@item -The @code{IDate} Intrinsic (VXT) -fails to return the year in the documented, non-Y2K-compliant range -of 0--99, -instead returning 100 for the year 2000. - -@c Fixed in @code{egcs} 1.2. - -@item -Year 2000 (Y2K) compliance information -is missing from the documentation. - -@c Fixed in @code{egcs} 1.2. - -@item -@code{g77} crashes when compiling -I/O statements using keywords that define @code{INTEGER} values, -such as @samp{IOSTAT=@var{j}}, -where @var{j} is other than default @code{INTEGER} -(such as @code{INTEGER*2}). - -@c Fixed in @code{egcs} 1.2. - -@item -The @samp{-ax} option is not obeyed when compiling Fortran programs. -(It is not passed to the @file{f771} driver.) - -@c Fixed in @code{egcs} 1.2. - -@item -@code{g77} fails to warn about a reference to a function -when the corresponding @emph{subsequent} function program unit -disagrees with the reference concerning the type of the function. - -@c Fixed in @code{egcs} 1.2. - -@item -@c Tim Prince discovered this. -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. +The following information was last updated on @value{last-update-bugs}: +@itemize @bullet @item @code{g77} fails to warn about use of a ``live'' iterative-DO variable as an implied-DO variable -in a @samp{WRITE} or @samp{PRINT} statement -(although it does warn about this in a @samp{READ} statement). +in a @code{WRITE} or @code{PRINT} statement +(although it does warn about this in a @code{READ} statement). @item Something about @code{g77}'s straightforward handling of @@ -153,7 +140,7 @@ This is to be fixed in version 0.6, when @code{g77} will use the @cindex compiler memory usage @cindex memory usage, of compiler @cindex large aggregate areas -@cindex initialization +@cindex initialization, bug @cindex DATA statement @cindex statements, DATA @item @@ -179,7 +166,7 @@ improvements to the compiler.) Note that @code{g77} does display a warning message to notify the user before the compiler appears to hang. -@ifset last-up-date +@ifset DOC-G77 @xref{Large Initialization,,Initialization of Large Aggregate Areas}, for information on how to change the point at which @code{g77} decides to issue this warning. @@ -201,7 +188,7 @@ 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. -@ifset last-up-date +@ifset DOC-G77 @xref{Code Gen Options,,Options for Code Generation Conventions}, for information on the @samp{-fdebug-kludge} option. @end ifset @@ -213,8 +200,8 @@ for information on the @samp{-fdebug-kludge} option. @item When debugging, after starting up the debugger but before being able to see the source code for the main program unit, the user must currently -set a breakpoint at @samp{MAIN__} (or @samp{MAIN___} or @samp{MAIN_} if -@samp{MAIN__} doesn't exist) +set a breakpoint at @code{MAIN__} (or @code{MAIN___} or @code{MAIN_} if +@code{MAIN__} doesn't exist) and run the program until it hits the breakpoint. At that point, the main program unit is activated and about to execute its first @@ -250,23 +237,6 @@ 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). -@cindex COMPLEX support -@cindex support, COMPLEX -@item -Maintainers of gcc report that the back end definitely has ``broken'' -support for @code{COMPLEX} types. -Based on their input, it seems many of -the problems affect only the more-general facilities for gcc's -@code{__complex__} type, such as @code{__complex__ int} -(where the real and imaginary parts are integers) that GNU -Fortran does not use. - -Version 0.5.20 of @code{g77} works around this -problem by not using the back end's support for @code{COMPLEX}. -The new option @samp{-fno-emulate-complex} avoids the work-around, -reverting to using the same ``broken'' mechanism as that used -by versions of @code{g77} prior to 0.5.20. - @cindex padding @cindex structures @cindex common blocks @@ -285,42 +255,6 @@ of specifications of alignment requirements and preferences for targets, and front ends like @code{g77} should take advantage of this when it becomes available. -@cindex alignment -@cindex double-precision performance -@cindex -malign-double -@item -The x86 target's @samp{-malign-double} option -no longer reliably aligns double-precision variables and arrays -when they are placed in the stack frame. - -This can significantly reduce the performance of some applications, -even on a run-to-run basis -(that is, performance measurements can vary fairly widely -depending on whether frequently used variables are properly aligned, -and that can change from one program run to the next, -even from one procedure call to the next). - -Versions 0.5.22 and earlier of @code{g77} -included a patch to @code{gcc} that enabled this, -but that patch has been deemed an improper (probably buggy) one -for version 2.8 of @code{gcc} and for @code{egcs}. - -Note that version 1.1 of @code{egcs} -aligns double-precision variables and arrays -when they are in static storage -even if @samp{-malign-double} is not specified. - -There is ongoing investigation into -how to make @samp{-malign-double} work properly, -also into how to make it unnecessary to get -all double-precision variables and arrays aligned -when such alignment would not violate -the relevant specifications for processor -and inter-procedural interfaces. - -For a suite of programs to test double-precision alignment, -see @uref{ftp://alpha.gnu.org/gnu/g77/align/}. - @cindex complex performance @cindex aliasing @item |