Commit b3f1cee4 by Jason Merrill Committed by Jason Merrill

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
parent e6baef83
2011-03-18 Jason Merrill <jason@redhat.com> 2011-03-18 Jason Merrill <jason@redhat.com>
PR c++/48162
* semantics.c (finish_call_expr): Allow TARGET_EXPR for now.
PR c++/48118 PR c++/48118
* call.c (build_over_call): Don't skip ck_rvalue. * call.c (build_over_call): Don't skip ck_rvalue.
......
...@@ -2155,6 +2155,9 @@ finish_call_expr (tree fn, VEC(tree,gc) **args, bool disallow_virtual, ...@@ -2155,6 +2155,9 @@ finish_call_expr (tree fn, VEC(tree,gc) **args, bool disallow_virtual,
if (TREE_CODE (result) == INDIRECT_REF) if (TREE_CODE (result) == INDIRECT_REF)
result = TREE_OPERAND (result, 0); result = TREE_OPERAND (result, 0);
gcc_assert (TREE_CODE (result) == CALL_EXPR 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 || TREE_CODE (fn) == PSEUDO_DTOR_EXPR
|| errorcount); || errorcount);
result = build_call_vec (TREE_TYPE (result), orig_fn, orig_args); result = build_call_vec (TREE_TYPE (result), orig_fn, orig_args);
......
2011-03-18 Jason Merrill <jason@redhat.com> 2011-03-18 Jason Merrill <jason@redhat.com>
* g++.dg/template/fn-ptr1.C: New.
* g++.dg/overload/volatile1.C: New. * g++.dg/overload/volatile1.C: New.
* g++.dg/opt/pr23372.C: New. * g++.dg/opt/pr23372.C: New.
......
// PR c++/48162
struct A { };
A (*f)();
template <class T> void g() { f(); }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment