From b8fd42a36767cc022dc8751c796dc6445407726b Mon Sep 17 00:00:00 2001
From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Tue, 4 Sep 2012 19:35:02 +0000
Subject: 	PR c++/54198 	* decl.c (check_default_argument): Set
 cp_unevaluated_operand 	around call to
 perform_implicit_conversion_flags.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@190949 138bc75d-0d04-0410-961f-82ee72b054a4
---
 gcc/cp/ChangeLog | 4 ++++
 gcc/cp/decl.c    | 2 ++
 2 files changed, 6 insertions(+)

(limited to 'gcc/cp')

diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 47498cb618a..9148bbe0771 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,9 @@
 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
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 8b94e26ac0c..8024373f09b 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -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
-- 
cgit v1.2.1