]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Important patch from Burley.
authorCraig Burley <burley@gnu.ai.mit.edu>
Mon, 3 Nov 1997 06:04:01 +0000 (06:04 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 3 Nov 1997 06:04:01 +0000 (23:04 -0700)
From-SVN: r16289

gcc/f/ChangeLog
gcc/f/com.c
gcc/f/news.texi
gcc/f/ste.c

index 9831a67427684e547afb4c63d6caca05c6b1c4e9..174a15ffe82775b8b7533de59b379c1bf6ed4589 100644 (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_,
index e53190abbbbc4d181a11477f87605a33b647c44c..99fbcc30d3cee026027ca690b9c3bb8919377d3e 100644 (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);
 }
index b9f01423eacbc37e6d0be91dd4f8014e82a6f8c3..411ed7054697821767f6ced71be63620fd903181 100644 (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
index a5e9757cca397b92b05575d2b5467922da48a0e5..31ae6a4b2a327b7b266c876fa18fcf3c2dfe7f5e 100644 (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