Important patch from Burley.

From-SVN: r16291
This commit is contained in:
Craig Burley 1997-11-03 06:07:04 +00:00 committed by Jeff Law
parent af75269882
commit a2977d2db3
4 changed files with 59 additions and 5 deletions

View File

@ -1,3 +1,13 @@
Fri Oct 10 13:00:48 1997 Craig Burley <burley@gnu.ai.mit.edu>
* ste.c (ffeste_begin_iterdo_): Fix loop setup so iteration
variable is modified only after the #iterations is calculated;
otherwise if the iteration variable is aliased to any of the
operands in the start, end, or increment expressions, the
wrong #iterations might be calculated.
* com.c (ffecom_save_tree): Fix indentation.
Mon Sep 29 16:18:21 1997 Craig Burley <burley@gnu.ai.mit.edu>
* stu.c (ffestu_list_exec_transition_,

View File

@ -13293,7 +13293,8 @@ ffecom_return_expr (ffebld expr)
/* Do save_expr only if tree is not error_mark_node. */
#if FFECOM_targetCURRENT == FFECOM_targetGCC
tree ffecom_save_tree (tree t)
tree
ffecom_save_tree (tree t)
{
return save_expr (t);
}

View File

@ -5,7 +5,7 @@
@c The text of this file appears in the file BUGS
@c in the G77 distribution, as well as in the G77 manual.
@c 1997-09-09
@c 1997-10-10
@ifclear NEWSONLY
@node News
@ -24,6 +24,47 @@ diagnostics, internal improvements, and miscellany.
This order is not strict---for example, some items
involve a combination of these elements.
@heading In 0.5.22:
@itemize @bullet
@item
Fix code generation for iterative @code{DO} loops that
have one or more references to the iteration variable,
or to aliases of it, in their control expressions.
For example, @samp{DO 10 J=2,J} now is compiled correctly.
@item
Fix a compiler crash involving optimization of
certain complicated expressions involving @code{COMPLEX}
arithmetic (especially multiplication).
@item
Rename the @code{gcc} keyword @code{restrict} to
@code{__restrict__}, to avoid rejecting valid, existing,
C programs.
Support for @code{restrict} is now more like support
for @code{complex}.
@item
Fix @code{DTime} intrinsic so as not to truncate
results to integer values (on some systems).
@item
Improve diagnostic messages from @code{libf2c}
so it is more likely that the printing of the
active format string is limited to the string,
with no trailing garbage being printed.
(Unlike @code{f2c}, @code{g77} does not append
a null byte to its compiled form of every
format string specified via a @code{FORMAT} statement.
However, @code{f2c} would exhibit the problem
anyway for a statement like @samp{PRINT '(I)garbage', 1}
by printing @samp{(I)garbage} as the format string.)
@item
Upgrade to @code{libf2c} as of 1997-09-23.
@end itemize
@heading In 0.5.21:
@itemize @bullet
@item

View File

@ -395,12 +395,11 @@ ffeste_begin_iterdo_ (ffestw block, tree *xtvar, tree *xtincr,
/* Do the initial assignment into the DO var. */
expr = ffecom_modify (void_type_node, tvar, tstart);
expand_expr_stmt (expr);
tstart = ffecom_save_tree (tstart);
expr = ffecom_2 (MINUS_EXPR, TREE_TYPE (tvar),
tend,
TREE_CONSTANT (tstart) ? tstart : tvar);
tstart);
if (!ffe_is_onetrip ())
{
@ -439,6 +438,9 @@ ffeste_begin_iterdo_ (ffestw block, tree *xtvar, tree *xtincr,
expr = ffecom_modify (void_type_node, niters, expr);
expand_expr_stmt (expr);
expr = ffecom_modify (void_type_node, tvar, tstart);
expand_expr_stmt (expr);
if (block == NULL)
expand_start_loop_continue_elsewhere (0);
else