summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-17 23:59:22 +0000
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-17 23:59:22 +0000
commit4c9d06ba474b3bc8d9dcc3030c28d6221a856dc2 (patch)
tree8769dad90a9537847ee096d8d5ddd89665e3f7ab
parent368220d99a7f3355b9305a0394a431e68160773c (diff)
downloadppe42-gcc-4c9d06ba474b3bc8d9dcc3030c28d6221a856dc2.tar.gz
ppe42-gcc-4c9d06ba474b3bc8d9dcc3030c28d6221a856dc2.zip
PR c++/9167, c++/9358
* decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61459 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/decl.c5
-rw-r--r--gcc/testsuite/g++.dg/init/inline1.C14
3 files changed, 23 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 7a148f5bd2b..562c8451f71 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,10 @@
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
* call.c (build_conditional_expr): Always do lvalue-rvalue
conversion.
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index f494ab3ee7e..d2b7527ee8f 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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
index 00000000000..f3e323427d3
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/inline1.C
@@ -0,0 +1,14 @@
+// PR c++/9167
+// { dg-options "-finline" }
+
+struct A {
+ ~A();
+ A f(A) { }
+};
+
+
+void f(void)
+{
+ A a;
+ a.f(a);
+}
OpenPOWER on IntegriCloud