PR c++/54198
* decl.c (check_default_argument): Set cp_unevaluated_operand
around call to perform_implicit_conversion_flags.
From-SVN: r190949
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
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.
--- /dev/null
+// 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);
+};