From: Dodji Seketeli Date: Wed, 27 Apr 2011 12:07:16 +0000 (+0200) Subject: Revert "Fix PR c++/42260" X-Git-Tag: releases/gcc-4.5.3~44 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ba95194ffec2fee83c191ae3a1c72b2b5f86844c;p=thirdparty%2Fgcc.git Revert "Fix PR c++/42260" gcc/cp * cp-tree.h (lookup_conversions): Revert adding new bool parameter to declaration. * search.c (lookup_conversions): Revert using new bool parameter in definition. * call.c (add_builtin_candidates): Revert "Don't lookup template conversion". (convert_class_to_reference, build_user_type_conversion_1) (build_op_call): Revert Adjustment. * cvt.c (build_expr_type_conversion): Likewise. gcc/testsuite * g++.dg/conversion/cast2.C: Remove file. From-SVN: r173024 --- diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 67d542c9ad93..d4b7b050a33a 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -1023,7 +1023,7 @@ convert_class_to_reference (tree reference_type, tree s, tree expr, int flags) if (!expr) return NULL; - conversions = lookup_conversions (s, /*lookup_template_convs_p=*/true); + conversions = lookup_conversions (s); if (!conversions) return NULL; @@ -2376,8 +2376,7 @@ add_builtin_candidates (struct z_candidate **candidates, enum tree_code code, if (i == 0 && code == MODIFY_EXPR && code2 == NOP_EXPR) return; - convs = lookup_conversions (argtypes[i], - /*lookup_template_convs_p=*/false); + convs = lookup_conversions (argtypes[i]); if (code == COND_EXPR) { @@ -2867,8 +2866,7 @@ build_user_type_conversion_1 (tree totype, tree expr, int flags) reference to it)... */ } else - conv_fns = lookup_conversions (fromtype, - /*lookup_template_convs_p=*/true); + conv_fns = lookup_conversions (fromtype); } candidates = 0; @@ -3402,7 +3400,7 @@ build_op_call (tree obj, VEC(tree,gc) **args, tsubst_flags_t complain) } } - convs = lookup_conversions (type, /*lookup_template_convs_p=*/true); + convs = lookup_conversions (type); for (; convs; convs = TREE_CHAIN (convs)) { diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index a6964ad33fec..65025621cd61 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -5026,7 +5026,7 @@ extern int at_function_scope_p (void); extern bool at_class_scope_p (void); extern bool at_namespace_scope_p (void); extern tree context_for_name_lookup (tree); -extern tree lookup_conversions (tree, bool); +extern tree lookup_conversions (tree); extern tree binfo_from_vbase (tree); extern tree binfo_for_vbase (tree, tree); extern tree look_for_overrides_here (tree, tree); diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c index 6fcb1f0a19aa..ad177b2bd094 100644 --- a/gcc/cp/cvt.c +++ b/gcc/cp/cvt.c @@ -1199,9 +1199,7 @@ build_expr_type_conversion (int desires, tree expr, bool complain) if (!TYPE_HAS_CONVERSION (basetype)) return NULL_TREE; - for (conv = lookup_conversions (basetype, /*lookup_template_convs_p=*/true); - conv; - conv = TREE_CHAIN (conv)) + for (conv = lookup_conversions (basetype); conv; conv = TREE_CHAIN (conv)) { int win = 0; tree candidate; diff --git a/gcc/cp/search.c b/gcc/cp/search.c index 772ae3b1fbe8..50f186a76e5e 100644 --- a/gcc/cp/search.c +++ b/gcc/cp/search.c @@ -2420,13 +2420,10 @@ lookup_conversions_r (tree binfo, functions in this node were selected. This function is effectively performing a set of member lookups as lookup_fnfield does, but using the type being converted to as the unique key, rather than the - field name. - If LOOKUP_TEMPLATE_CONVS_P is TRUE, the returned TREE_LIST contains - the non-hidden user-defined template conversion functions too. */ + field name. */ tree -lookup_conversions (tree type, - bool lookup_template_convs_p) +lookup_conversions (tree type) { tree convs, tpl_convs; tree list = NULL_TREE; @@ -2453,9 +2450,6 @@ lookup_conversions (tree type, } } - if (lookup_template_convs_p == false) - tpl_convs = NULL_TREE; - for (; tpl_convs; tpl_convs = TREE_CHAIN (tpl_convs)) { tree probe, next; diff --git a/gcc/testsuite/g++.dg/conversion/cast2.C b/gcc/testsuite/g++.dg/conversion/cast2.C deleted file mode 100644 index 3868d748c0ea..000000000000 --- a/gcc/testsuite/g++.dg/conversion/cast2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Contributed by Dodji Seketeli -// Origin: PR c++/42260 -// { dg-do compile } - -struct A -{ - template operator T*(); -}; - -int i = *A();// { dg-error "no match" } -