diff options
author | Jason Merrill <jason@redhat.com> | 2011-03-18 11:07:13 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-03-18 11:07:13 -0400 |
commit | b3f1cee49f3f9c59cfb7e05a7dc7a2b6e480305a (patch) | |
tree | 2cdc99775a855a529401c9947349a1d7e912f61d /gcc | |
parent | e6baef836f11dd7273c258a41cbfc44f462e3828 (diff) | |
download | gcc-b3f1cee49f3f9c59cfb7e05a7dc7a2b6e480305a.zip gcc-b3f1cee49f3f9c59cfb7e05a7dc7a2b6e480305a.tar.gz gcc-b3f1cee49f3f9c59cfb7e05a7dc7a2b6e480305a.tar.bz2 |
re PR c++/48162 (447.dealII in SPEC CPU 2006 failed to build)
PR c++/48162
* semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
From-SVN: r171148
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/semantics.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/template/fn-ptr1.C | 5 |
4 files changed, 13 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 9578f1a..e187dee 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2011-03-18 Jason Merrill <jason@redhat.com> + PR c++/48162 + * semantics.c (finish_call_expr): Allow TARGET_EXPR for now. + PR c++/48118 * call.c (build_over_call): Don't skip ck_rvalue. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index b6d1008..41ab858 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -2155,6 +2155,9 @@ finish_call_expr (tree fn, VEC(tree,gc) **args, bool disallow_virtual, if (TREE_CODE (result) == INDIRECT_REF) result = TREE_OPERAND (result, 0); gcc_assert (TREE_CODE (result) == CALL_EXPR + /* FIXME cp_build_function_call_vec should avoid argument + and return transformations like build_over_call does. */ + || TREE_CODE (result) == TARGET_EXPR || TREE_CODE (fn) == PSEUDO_DTOR_EXPR || errorcount); result = build_call_vec (TREE_TYPE (result), orig_fn, orig_args); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b0f4f53..c362faf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,7 @@ 2011-03-18 Jason Merrill <jason@redhat.com> + * g++.dg/template/fn-ptr1.C: New. + * g++.dg/overload/volatile1.C: New. * g++.dg/opt/pr23372.C: New. diff --git a/gcc/testsuite/g++.dg/template/fn-ptr1.C b/gcc/testsuite/g++.dg/template/fn-ptr1.C new file mode 100644 index 0000000..c0e7d98 --- /dev/null +++ b/gcc/testsuite/g++.dg/template/fn-ptr1.C @@ -0,0 +1,5 @@ +// PR c++/48162 + +struct A { }; +A (*f)(); +template <class T> void g() { f(); } |