OSDN Git Service

* tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Feb 2001 12:46:21 +0000 (12:46 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 16 Feb 2001 12:46:21 +0000 (12:46 +0000)
        * optimize.c (remap_block): If we're compiling a clone, pass the
        new block to insert_block.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39761 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cp/ChangeLog
gcc/cp/optimize.c
gcc/tree.h

index abe8ba7..6e3517b 100644 (file)
@@ -1,3 +1,7 @@
+2001-02-16  Jason Merrill  <jason@redhat.com>
+
+       * tree.h (BLOCK_CHAIN): Use BLOCK_CHECK.
+
 2001-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
 
        * .gdbinit: Rename to gdbinit.in.
@@ -196,7 +200,7 @@ Tue Feb 13 23:19:27 CET 2001  Jan Hubicka  <jh@suse.cz>
 
 Tue Feb 13 23:05:42 CET 2001  Jan Hubicka  <jh@suse.cz>
 
-       * regclass.c (init_reg_sets_1): Silence warning.
+       * regclass.c (init_reg_sets_1): Silence warning.
 
 Tue Feb 13 22:03:07 CET 2001  Jan Hubicka  <jh@suse.cz>
 
index 2a8d7a5..d7149eb 100644 (file)
@@ -1,3 +1,8 @@
+2001-02-16  Jason Merrill  <jason@redhat.com>
+
+       * optimize.c (remap_block): If we're compiling a clone, pass the
+       new block to insert_block.
+
 2001-02-16  Mark Mitchell  <mark@codesourcery.com>
 
        * semantics.c (finish_asm_stmt): Robustify.
@@ -29,8 +34,8 @@
 
 2001-02-08  Aldy Hernandez  <aldyh@redhat.com>
 
-        * cp/parse.y (component_constructor_declarator): allow optional
-        parenthesess around constructor class name.
+       parse.y (component_constructor_declarator): allow optional
+       parentheses around constructor class name.
 
 2001-02-14  Nathan Sidwell  <nathan@codesourcery.com>
 
index c6d43b9..e18ece9 100644 (file)
@@ -161,7 +161,6 @@ remap_block (scope_stmt, decls, id)
       tree old_block;
       tree new_block;
       tree old_var;
-      tree *first_block;
       tree fn;
 
       /* Make the new block.  */
@@ -195,16 +194,24 @@ remap_block (scope_stmt, decls, id)
        }
       /* We put the BLOCK_VARS in reverse order; fix that now.  */
       BLOCK_VARS (new_block) = nreverse (BLOCK_VARS (new_block));
-      /* Attach this new block after the DECL_INITIAL block for the
-        function into which this block is being inlined.  In
-        rest_of_compilation we will straighten out the BLOCK tree.  */
       fn = VARRAY_TREE (id->fns, 0);
-      if (DECL_INITIAL (fn))
-       first_block = &BLOCK_CHAIN (DECL_INITIAL (fn));
+      if (fn == current_function_decl)
+       /* We're building a clone; DECL_INITIAL is still error_mark_node, and
+          current_binding_level is the parm binding level.  */
+       insert_block (new_block);
       else
-       first_block = &DECL_INITIAL (fn);
-      BLOCK_CHAIN (new_block) = *first_block;
-      *first_block = new_block;
+       {
+         /* Attach this new block after the DECL_INITIAL block for the
+            function into which this block is being inlined.  In
+            rest_of_compilation we will straighten out the BLOCK tree.  */
+         tree *first_block;
+         if (DECL_INITIAL (fn))
+           first_block = &BLOCK_CHAIN (DECL_INITIAL (fn));
+         else
+           first_block = &DECL_INITIAL (fn);
+         BLOCK_CHAIN (new_block) = *first_block;
+         *first_block = new_block;
+       }
       /* Remember the remapped block.  */
       splay_tree_insert (id->decl_map,
                         (splay_tree_key) old_block,
index c7745be..60427b9 100644 (file)
@@ -823,7 +823,7 @@ struct tree_exp
 #define BLOCK_SUPERCONTEXT(NODE) (BLOCK_CHECK (NODE)->block.supercontext)
 /* Note: when changing this, make sure to find the places
    that use chainon or nreverse.  */
-#define BLOCK_CHAIN(NODE) TREE_CHAIN (NODE)
+#define BLOCK_CHAIN(NODE) TREE_CHAIN (BLOCK_CHECK (NODE))
 #define BLOCK_ABSTRACT_ORIGIN(NODE) (BLOCK_CHECK (NODE)->block.abstract_origin)
 #define BLOCK_ABSTRACT(NODE) (BLOCK_CHECK (NODE)->block.abstract_flag)