diff options
author | Craig Burley <craig@jcb-sc.com> | 1999-06-04 08:14:19 +0000 |
---|---|---|
committer | Craig Burley <burley@gcc.gnu.org> | 1999-06-04 04:14:19 -0400 |
commit | 11b6d80dad4f423797ef4b9068d74758f88aa432 (patch) | |
tree | d1f752b011b8e1446e6aeb6bee0928aaf3b60ab6 /gcc | |
parent | ecfa9fccd5f008ee2dbf23851c171eb254b7e174 (diff) | |
download | gcc-11b6d80dad4f423797ef4b9068d74758f88aa432.zip gcc-11b6d80dad4f423797ef4b9068d74758f88aa432.tar.gz gcc-11b6d80dad4f423797ef4b9068d74758f88aa432.tar.bz2 |
add item to missing features
From-SVN: r27350
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/f/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/f/g77.texi | 59 |
2 files changed, 63 insertions, 1 deletions
diff --git a/gcc/f/ChangeLog b/gcc/f/ChangeLog index 46be8d6..19ef846 100644 --- a/gcc/f/ChangeLog +++ b/gcc/f/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 4 10:09:50 1999 Craig Burley <craig@jcb-sc.com> + + * g77.texi (Missing Features): Add `Better Warnings' + item. + Fri May 28 16:51:41 1999 Craig Burley <craig@jcb-sc.com> * g77.texi: Fix thinko. diff --git a/gcc/f/g77.texi b/gcc/f/g77.texi index e8fc431..fb393a0 100644 --- a/gcc/f/g77.texi +++ b/gcc/f/g77.texi @@ -2,7 +2,7 @@ @c %**start of header @setfilename g77.info -@set last-update 1999-05-28 +@set last-update 1999-06-04 @set copyrights-g77 1995-1999 @include root.texi @@ -11428,6 +11428,7 @@ New facilities: * Increasing Precision/Range:: Better diagnostics: +* Better Warnings:: * Gracefully Handle Sensible Bad Code:: * Non-standard Conversions:: * Non-standard Intrinsics:: @@ -12174,6 +12175,62 @@ are thread-safe, nor does @code{g77} have support for parallel processing processors). A package such as PVM might help here. +@node Better Warnings +@subsection Better Warnings + +Because of how @code{g77} generates code via the back end, +it doesn't always provide warnings the user wants. +Consider: + +@smallexample +PROGRAM X +PRINT *, A +END +@end smallexample + +Currently, the above is not flagged as a case of +using an uninitialized variable, +because @code{g77} generates a run-time library call that looks, +to the GBE, like it might actually @emph{modify} @samp{A} at run time. +(And, in fact, depending on the previous run-time library call, +it would!) + +Fixing this requires one of the following: + +@itemize @bullet +@item +Switch to new library, @code{libg77}, that provides +a more ``clean'' interface, +vis-a-vis input, output, and modified arguments, +so the GBE can tell what's going on. + +This would provide a pretty big performance improvement, +at least theoretically, and, ultimately, in practice, +for some types of code. + +@item +Have @code{g77} pass a pointer to a temporary +containing a copy of @samp{A}, +instead of to @samp{A} itself. +The GBE would then complain about the copy operation +involving a potentially uninitialized variable. + +This might also provide a performance boost for some code, +because @samp{A} might then end up living in a register, +which could help with inner loops. + +@item +Have @code{g77} use a GBE construct similar to @code{ADDR_EXPR} +but with extra information on the fact that the +item pointed to won't be modified +(a la @code{const} in C). + +Probably the best solution for now, but not quite trivial +to implement in the general case. +Worth considering after @code{g77} 0.6 is considered +pretty solid. +@end itemize + @node Gracefully Handle Sensible Bad Code @subsection Gracefully Handle Sensible Bad Code |