From b15515667c006b1933c95717e6cae4d076df4899 Mon Sep 17 00:00:00 2001 From: burley Date: Fri, 4 Jun 1999 08:14:19 +0000 Subject: [PATCH] add item to missing features git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27350 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/f/ChangeLog | 5 +++++ gcc/f/g77.texi | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) 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 + + * g77.texi (Missing Features): Add `Better Warnings' + item. + Fri May 28 16:51:41 1999 Craig Burley * 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 -- 2.7.4