Commit afba316b by Jason Merrill Committed by Jason Merrill

re PR c++/54198 ("error: invalid use of incomplete type" when building Chromium)

	PR c++/54198
	* decl.c (check_default_argument): Set cp_unevaluated_operand
	around call to perform_implicit_conversion_flags.

From-SVN: r190949
parent 427b8bb8
2012-09-04 Jason Merrill <jason@redhat.com>
PR c++/54198
* decl.c (check_default_argument): Set cp_unevaluated_operand
around call to perform_implicit_conversion_flags.
PR c++/54437
PR c++/51213
* pt.c (fn_type_unification): Call coerce_template_parms before
......
......@@ -10575,8 +10575,10 @@ check_default_argument (tree decl, tree arg)
A default argument expression is implicitly converted to the
parameter type. */
++cp_unevaluated_operand;
perform_implicit_conversion_flags (decl_type, arg, tf_warning_or_error,
LOOKUP_NORMAL);
--cp_unevaluated_operand;
if (warn_zero_as_null_pointer_constant
&& c_inhibit_evaluation_warnings == 0
......
2012-09-04 Jason Merrill <jason@redhat.com>
PR c++/54198
* g++.dg/template/defarg15.C: New.
PR c++/54437
* g++.dg/template/access24.C: New.
......
// PR c++/54198
template <typename T> void
refIfNotNull (T* p1)
{
p1->ref;
}
template <typename T> struct A
{
A (T* p1)
{
refIfNotNull (p1);
}
};
class B;
class C
{
void getParent (A <B> = 0);
};
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