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
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
{
/* 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);