]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Revert "Fix PR c++/42260"
authorDodji Seketeli <dodji@gcc.gnu.org>
Wed, 27 Apr 2011 12:07:16 +0000 (14:07 +0200)
committerDodji Seketeli <dodji@gcc.gnu.org>
Wed, 27 Apr 2011 12:07:16 +0000 (14:07 +0200)
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

gcc/cp/call.c
gcc/cp/cp-tree.h
gcc/cp/cvt.c
gcc/cp/search.c
gcc/testsuite/g++.dg/conversion/cast2.C [deleted file]

index 67d542c9ad938ffa594ba1610dcdc0c0f5ad39d7..d4b7b050a33a02002a7919712403645764c9ecee 100644 (file)
@@ -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))
     {
index a6964ad33fece99720ffac63954abd35b7c44e7c..65025621cd61886fbba53afa02835723d9e68d46 100644 (file)
@@ -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);
index 6fcb1f0a19aa3b4eda4ade53374875246cdc17ff..ad177b2bd0943676692bb2c70bb562a19a43ac0c 100644 (file)
@@ -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;
index 772ae3b1fbe8074ce2cdea083aee301d46fe7241..50f186a76e5e31f51a398becf9a03a2aa942048a 100644 (file)
@@ -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 (file)
index 3868d74..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-// Contributed by Dodji Seketeli <dodji@redhat.com>
-// Origin: PR c++/42260
-// { dg-do compile }
-
-struct A
-{
-      template<typename T> operator T*();
-};
-
-int i = *A();// { dg-error "no match" }
-