aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2013-01-02 14:58:07 -0500
committerJason Merrill <jason@gcc.gnu.org>2013-01-02 14:58:07 -0500
commit5f94242299859d125a38a89fa4291efe18b9180e (patch)
tree8bfa1103728aebd90bc65c8e543519198e9c33a3
parente0c06fdd7fe06b52ccfadb3822243e0cc43aeae2 (diff)
downloadgcc-5f94242299859d125a38a89fa4291efe18b9180e.zip
gcc-5f94242299859d125a38a89fa4291efe18b9180e.tar.gz
gcc-5f94242299859d125a38a89fa4291efe18b9180e.tar.bz2
* decl.c (check_default_argument): Use LOOKUP_IMPLICIT.
From-SVN: r194816
-rw-r--r--gcc/cp/ChangeLog2
-rw-r--r--gcc/cp/decl.c2
-rw-r--r--gcc/testsuite/g++.dg/overload/defarg7.C12
3 files changed, 15 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 6264556..fe0bfe2 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,7 @@
2013-01-02 Jason Merrill <jason@redhat.com>
+ * decl.c (check_default_argument): Use LOOKUP_IMPLICIT.
+
PR c++/55032
PR c++/55245
* tree.c (build_cplus_array_type): Copy layout information
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 64bd4b5..52ceefc 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -10829,7 +10829,7 @@ check_default_argument (tree decl, tree arg)
parameter type. */
++cp_unevaluated_operand;
perform_implicit_conversion_flags (decl_type, arg, tf_warning_or_error,
- LOOKUP_NORMAL);
+ LOOKUP_IMPLICIT);
--cp_unevaluated_operand;
if (warn_zero_as_null_pointer_constant
diff --git a/gcc/testsuite/g++.dg/overload/defarg7.C b/gcc/testsuite/g++.dg/overload/defarg7.C
new file mode 100644
index 0000000..8cc08f5
--- /dev/null
+++ b/gcc/testsuite/g++.dg/overload/defarg7.C
@@ -0,0 +1,12 @@
+struct A
+{
+ A(const char *);
+ explicit A(const int *);
+};
+
+void f (A a = 0);
+
+int main()
+{
+ f();
+}