diff options
author | Jason Merrill <jason@redhat.com> | 2003-01-17 18:59:22 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2003-01-17 18:59:22 -0500 |
commit | 753225c183c59b66920a794b1ab0482007ea6158 (patch) | |
tree | 8769dad90a9537847ee096d8d5ddd89665e3f7ab /gcc | |
parent | 77b996cc58685d44753ff78a3e9f19b10c5be767 (diff) | |
download | gcc-753225c183c59b66920a794b1ab0482007ea6158.zip gcc-753225c183c59b66920a794b1ab0482007ea6158.tar.gz gcc-753225c183c59b66920a794b1ab0482007ea6158.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/cp/decl.c | 5 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/init/inline1.C | 14 |
3 files changed, 23 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 7a148f5..562c845 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 f494ab3..d2b7527 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 0000000..f3e3234 --- /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); +} |