revert: re PR tree-optimization/16115 (double-destruction problem with argument passi...
authorMark Mitchell <mark@codesourcery.com>
Tue, 6 Jul 2004 07:16:32 +0000 (07:16 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 6 Jul 2004 07:16:32 +0000 (07:16 +0000)
Revert:
2004-06-24  Jason Merrill  <jason@redhat.com>
PR c++/16115
* decl.c (grokparms): Give the PARM_DECL reference type if the
parameter is passed by invisible reference.

From-SVN: r84147

gcc/cp/ChangeLog
gcc/cp/decl.c

index 2d7f89d..a9dc857 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-06  Mark Mitchell  <mark@codesourcery.com>
+
+       Revert:
+       2004-06-24  Jason Merrill  <jason@redhat.com>
+       PR c++/16115
+       * decl.c (grokparms): Give the PARM_DECL reference type if the
+       parameter is passed by invisible reference.
+
 2004-07-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
        * cp-lang.c (cp_var_mod_type_p): Add extra arg.
index 25ecca7..fbc7dd7 100644 (file)
@@ -8220,13 +8220,6 @@ grokparms (cp_parameter_declarator *first_parm, tree *parms)
 
       if (type != error_mark_node)
        {
-         /* If this type is passed by invisible reference, make the PARM_DECL
-            reflect that so that alias analysis knows that the actual object
-            is external to the function.  */
-         if (TREE_ADDRESSABLE (type))
-           decl = build_decl (PARM_DECL, DECL_NAME (decl),
-                              build_reference_type (type));
-
          /* Top-level qualifiers on the parameters are
             ignored for function types.  */
          type = cp_build_qualified_type (type, 0);
@@ -8261,7 +8254,7 @@ grokparms (cp_parameter_declarator *first_parm, tree *parms)
            }
 
          if (!any_error && init)
-           init = check_default_argument (type, init);
+           init = check_default_argument (decl, init);
          else
            init = NULL_TREE;
        }