integrate.c (copy_decl_for_inlining): Remove invisible reference handling.
authorJason Merrill <jason@redhat.com>
Thu, 22 Jul 2004 19:01:03 +0000 (15:01 -0400)
committerJason Merrill <jason@gcc.gnu.org>
Thu, 22 Jul 2004 19:01:03 +0000 (15:01 -0400)
        * integrate.c (copy_decl_for_inlining): Remove invisible reference
        handling.
        * tree-inline.c (setup_one_parameter): Likewise.

From-SVN: r85057

gcc/ChangeLog
gcc/integrate.c
gcc/tree-inline.c

index 1c220812d4a1d1cf1f793834628598ad08a40083..12aac93f7bac362fa8a382aea3fa1cc789abce5a 100644 (file)
@@ -1,3 +1,9 @@
+2004-07-22  Jason Merrill  <jason@redhat.com>
+
+       * integrate.c (copy_decl_for_inlining): Remove invisible reference
+       handling.
+       * tree-inline.c (setup_one_parameter): Likewise.
+
 2004-07-22  Brian Booth  <bbooth@redhat.com>
 
        * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL.
index bd96be800821a6b84b75f7f453906ed7888f935e..2fa5164bec55cfe906ae0e9c6c4143b47fb9db8d 100644 (file)
@@ -116,36 +116,14 @@ copy_decl_for_inlining (tree decl, tree from_fn, tree to_fn)
   /* Copy the declaration.  */
   if (TREE_CODE (decl) == PARM_DECL || TREE_CODE (decl) == RESULT_DECL)
     {
-      tree type;
-      int invisiref = 0;
-
-      /* See if the frontend wants to pass this by invisible reference.  */
-      if (TREE_CODE (decl) == PARM_DECL
-         && DECL_ARG_TYPE (decl) != TREE_TYPE (decl)
-         && POINTER_TYPE_P (DECL_ARG_TYPE (decl))
-         && TREE_TYPE (DECL_ARG_TYPE (decl)) == TREE_TYPE (decl))
-       {
-         invisiref = 1;
-         type = DECL_ARG_TYPE (decl);
-       }
-      else
-       type = TREE_TYPE (decl);
+      tree type = TREE_TYPE (decl);
 
       /* For a parameter or result, we must make an equivalent VAR_DECL, not a
         new PARM_DECL.  */
       copy = build_decl (VAR_DECL, DECL_NAME (decl), type);
-      if (!invisiref)
-       {
-         TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl);
-         TREE_READONLY (copy) = TREE_READONLY (decl);
-         TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl);
-       }
-      else
-       {
-         TREE_ADDRESSABLE (copy) = 0;
-         TREE_READONLY (copy) = 1;
-         TREE_THIS_VOLATILE (copy) = 0;
-       }
+      TREE_ADDRESSABLE (copy) = TREE_ADDRESSABLE (decl);
+      TREE_READONLY (copy) = TREE_READONLY (decl);
+      TREE_THIS_VOLATILE (copy) = TREE_THIS_VOLATILE (decl);
     }
   else
     {
index 66ed131745927b72a612e8ef33ef41b17d69fe64..6412ce0306d27e3de8cd75e89419e892d1ecf339 100644 (file)
@@ -693,7 +693,6 @@ setup_one_parameter (inline_data *id, tree p, tree value, tree fn,
 {
   tree init_stmt;
   tree var;
-  tree var_sub;
 
   /* If the parameter is never assigned to, we may not need to
      create a new variable here at all.  Instead, we may be able
@@ -724,23 +723,10 @@ setup_one_parameter (inline_data *id, tree p, tree value, tree fn,
      function. */
   var = copy_decl_for_inlining (p, fn, VARRAY_TREE (id->fns, 0));
 
-  /* See if the frontend wants to pass this by invisible reference.  If
-     so, our new VAR_DECL will have REFERENCE_TYPE, and we need to
-     replace uses of the PARM_DECL with dereferences.  */
-  if (TREE_TYPE (var) != TREE_TYPE (p)
-      && POINTER_TYPE_P (TREE_TYPE (var))
-      && TREE_TYPE (TREE_TYPE (var)) == TREE_TYPE (p))
-    {
-      insert_decl_map (id, var, var);
-      var_sub = build1 (INDIRECT_REF, TREE_TYPE (p), var);
-    }
-  else
-    var_sub = var;
-
   /* Register the VAR_DECL as the equivalent for the PARM_DECL;
      that way, when the PARM_DECL is encountered, it will be
      automatically replaced by the VAR_DECL.  */
-  insert_decl_map (id, p, var_sub);
+  insert_decl_map (id, p, var);
 
   /* Declare this new variable.  */
   TREE_CHAIN (var) = *vars;