aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-04-27 15:04:23 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-04-27 15:04:23 -0400
commit4a5d353fa8b904fb64df60f68d7c7a542dd20aa6 (patch)
tree30ce0b6094830ba758b8da7099cd4fd8ec4ac0da /gcc/cp
parent798ec80703636f8572e33e10dbeb86f497490fbf (diff)
downloadgcc-4a5d353fa8b904fb64df60f68d7c7a542dd20aa6.zip
gcc-4a5d353fa8b904fb64df60f68d7c7a542dd20aa6.tar.gz
gcc-4a5d353fa8b904fb64df60f68d7c7a542dd20aa6.tar.bz2
re PR c++/41468 (SFINAE for expressions doesn't consider ambiguous conversion sequences)
PR c++/41468 * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node if we don't want errors. From-SVN: r158799
Diffstat (limited to 'gcc/cp')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/call.c2
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index d4b82a9..f7456bf 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,6 +1,10 @@
2010-04-27 Jason Merrill <jason@redhat.com>
PR c++/41468
+ * call.c (convert_like_real) [ck_ambig]: Just return error_mark_node
+ if we don't want errors.
+
+ PR c++/41468
* class.c (convert_to_base): Add complain parameter. Pass
ba_quiet to lookup_base if we don't want errors.
(build_vfield_ref): Pass complain to convert_to_base.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index a97f7dc..7915417 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -4947,6 +4947,8 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
}
return expr;
case ck_ambig:
+ if (!(complain & tf_error))
+ return error_mark_node;
/* Call build_user_type_conversion again for the error. */
return build_user_type_conversion
(totype, convs->u.expr, LOOKUP_NORMAL);