PR c++/9167, c++/9358
authorJason Merrill <jason@redhat.com>
Fri, 17 Jan 2003 23:59:22 +0000 (18:59 -0500)
committerJason Merrill <jason@gcc.gnu.org>
Fri, 17 Jan 2003 23:59:22 +0000 (18:59 -0500)
        PR c++/9167, c++/9358
        * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.

From-SVN: r61459

gcc/cp/ChangeLog
gcc/cp/decl.c
gcc/testsuite/g++.dg/init/inline1.C [new file with mode: 0644]

index 7a148f5bd2b5497e7b2db7c14163828b253ebfe2..562c8451f71792ead7a40545fbf052fc8978b0c5 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-17  Jason Merrill  <jason@redhat.com>
+
+       PR c++/9167, c++/9358
+       * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
+
 2003-01-17  Jason Merrill  <jason@redhat.com>
 
        PR c++/9342
index f494ab3ee7e21301d58daed00efd00481a1ec975..d2b7527ee8fcce62888a9c3fd352139baa1be73e 100644 (file)
@@ -11828,7 +11828,10 @@ require_complete_types_for_parms (tree parms)
         /* grokparms will have already issued an error */
         TREE_TYPE (parms) = error_mark_node;
       else if (complete_type_or_else (TREE_TYPE (parms), parms))
-       layout_decl (parms, 0);
+       {
+         layout_decl (parms, 0);
+         DECL_ARG_TYPE (parms) = type_passed_as (TREE_TYPE (parms));
+       }
       else
         TREE_TYPE (parms) = error_mark_node;
     }
diff --git a/gcc/testsuite/g++.dg/init/inline1.C b/gcc/testsuite/g++.dg/init/inline1.C
new file mode 100644 (file)
index 0000000..f3e3234
--- /dev/null
@@ -0,0 +1,14 @@
+// PR c++/9167
+// { dg-options "-finline" }
+
+struct A {
+  ~A();
+  A f(A) { }
+};
+
+
+void f(void)
+{
+  A a;
+  a.f(a);
+}