From 753225c183c59b66920a794b1ab0482007ea6158 Mon Sep 17 00:00:00 2001 From: Jason Merrill Date: Fri, 17 Jan 2003 18:59:22 -0500 Subject: [PATCH] PR c++/9167, c++/9358 PR c++/9167, c++/9358 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. From-SVN: r61459 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 5 ++++- gcc/testsuite/g++.dg/init/inline1.C | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/g++.dg/init/inline1.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7a148f5bd2b..562c8451f71 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2003-01-17 Jason Merrill + + PR c++/9167, c++/9358 + * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE. + 2003-01-17 Jason Merrill PR c++/9342 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); +} -- 2.30.2