diff options
| author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-17 23:59:22 +0000 |
|---|---|---|
| committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-17 23:59:22 +0000 |
| commit | 4c9d06ba474b3bc8d9dcc3030c28d6221a856dc2 (patch) | |
| tree | 8769dad90a9537847ee096d8d5ddd89665e3f7ab | |
| parent | 368220d99a7f3355b9305a0394a431e68160773c (diff) | |
| download | ppe42-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/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 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); +} |

