2010-07-04 Richard Guenther <rguenther@suse.de>
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Jul 2010 12:20:14 +0000 (12:20 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 4 Jul 2010 12:20:14 +0000 (12:20 +0000)
PR middle-end/44785
* tree-inline.c (initialize_inlined_parameters): Do not
re-use pointer-map slot over remap_type call.

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

gcc/ChangeLog
gcc/tree-inline.c

index b7b6b00..5da41db 100644 (file)
@@ -1,5 +1,11 @@
 2010-07-04  Richard Guenther  <rguenther@suse.de>
 
+       PR middle-end/44785
+       * tree-inline.c (initialize_inlined_parameters): Do not
+       re-use pointer-map slot over remap_type call.
+
+2010-07-04  Richard Guenther  <rguenther@suse.de>
+
        * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix last commit.
 
 2010-07-04  Richard Guenther  <rguenther@suse.de>
index 3b1c459..46c604f 100644 (file)
@@ -2690,19 +2690,20 @@ initialize_inlined_parameters (copy_body_data *id, gimple stmt,
       if (varp
          && TREE_CODE (*varp) == VAR_DECL)
        {
-         tree def = (gimple_in_ssa_p (cfun)
+         tree def = (gimple_in_ssa_p (cfun) && is_gimple_reg (p)
                      ? gimple_default_def (id->src_cfun, p) : NULL);
-         TREE_TYPE (*varp) = remap_type (TREE_TYPE (*varp), id);
+         tree var = *varp;
+         TREE_TYPE (var) = remap_type (TREE_TYPE (var), id);
          /* Also remap the default definition if it was remapped
             to the default definition of the parameter replacement
             by the parameter setup.  */
-         if (def && gimple_in_ssa_p (cfun) && is_gimple_reg (p))
+         if (def)
            {
              tree *defp = (tree *) pointer_map_contains (id->decl_map, def);
              if (defp
                  && TREE_CODE (*defp) == SSA_NAME
-                 && SSA_NAME_VAR (*defp) == *varp)
-               TREE_TYPE (*defp) = TREE_TYPE (*varp);
+                 && SSA_NAME_VAR (*defp) == var)
+               TREE_TYPE (*defp) = TREE_TYPE (var);
            }
        }
     }