tree.c (copy_node): Improve documentation.
authorMark Mitchell <mark@codesourcery.com>
Fri, 27 Aug 1999 03:01:20 +0000 (03:01 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Fri, 27 Aug 1999 03:01:20 +0000 (03:01 +0000)
* tree.c (copy_node): Improve documentation.
(cplus_unsave_expr_now): Don't return a value.

From-SVN: r28911

gcc/ChangeLog
gcc/tree.c

index 85b24a5..4596ac1 100644 (file)
@@ -1,3 +1,8 @@
+Thu Aug 26 18:11:20 1999  Mark Mitchell  <mark@codesourcery.com>
+
+       * tree.c (array_type_nelts): Don't create RTL_EXPRs from
+       SAVE_EXPRs unless the SAVE_EXPRs have already been expanded.
+
 Thu Aug 26 19:33:23 1999  Jim Wilson  <wilson@cygnus.com>
 
        * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition.
index 6b5630d..dcc0ac7 100644 (file)
@@ -1127,8 +1127,11 @@ make_node (code)
   return t;
 }
 \f
-/* Return a new node with the same contents as NODE
-   except that its TREE_CHAIN is zero and it has a fresh uid.  */
+/* Return a new node with the same contents as NODE except that its
+   TREE_CHAIN is zero and it has a fresh uid.  Unlike make_node, this
+   function always performs the allocation on the CURRENT_OBSTACK;
+   it's up to the caller to pick the right obstack before calling this
+   function.  */
 
 tree
 copy_node (node)
@@ -2244,7 +2247,7 @@ array_type_nelts (type)
   if (! TREE_CONSTANT (min))
     {
       STRIP_NOPS (min);
-      if (TREE_CODE (min) == SAVE_EXPR)
+      if (TREE_CODE (min) == SAVE_EXPR && SAVE_EXPR_RTL (min))
        min = build (RTL_EXPR, TREE_TYPE (TYPE_MIN_VALUE (index_type)), 0,
                     SAVE_EXPR_RTL (min));
       else
@@ -2254,7 +2257,7 @@ array_type_nelts (type)
   if (! TREE_CONSTANT (max))
     {
       STRIP_NOPS (max);
-      if (TREE_CODE (max) == SAVE_EXPR)
+      if (TREE_CODE (max) == SAVE_EXPR && SAVE_EXPR_RTL (max))
        max = build (RTL_EXPR, TREE_TYPE (TYPE_MAX_VALUE (index_type)), 0,
                     SAVE_EXPR_RTL (max));
       else