Commit de614750 by Jason Merrill Committed by Jason Merrill

re PR c++/63934 ([C++] internal compiler error: in adjust_temp_type, at cp/constexpr.c:1020)

	PR c++/63934
	* constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
	rather than VOID_TYPE_P.

From-SVN: r217729
parent 5d2d755e
2014-11-18 Jason Merrill <jason@redhat.com>
PR c++/63934
* constexpr.c (cxx_eval_call_expression): Check DECL_CONSTRUCTOR_P
rather than VOID_TYPE_P.
* pt.c (instantiate_template_1): Use tsubst_aggr_type for context.
PR c++/58102
......
......@@ -1328,7 +1328,7 @@ cxx_eval_call_expression (const constexpr_ctx *ctx, tree t,
addr, non_constant_p, overflow_p,
&jump_target);
if (VOID_TYPE_P (TREE_TYPE (res)))
if (DECL_CONSTRUCTOR_P (fun))
/* This can be null for a subobject constructor call, in
which case what we care about is the initialization
side-effects rather than the value. We could get at the
......@@ -1367,7 +1367,7 @@ cxx_eval_call_expression (const constexpr_ctx *ctx, tree t,
{
/* If this was a call to initialize an object, set the type of
the CONSTRUCTOR to the type of that object. */
if (DECL_CONSTRUCTOR_P (fun))
if (DECL_CONSTRUCTOR_P (fun) && !use_new_call)
{
tree ob_arg = get_nth_callarg (t, 0);
STRIP_NOPS (ob_arg);
......
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