c++: Remove redundant code.
authorJason Merrill <jason@redhat.com>
Mon, 11 May 2020 18:05:46 +0000 (14:05 -0400)
committerJason Merrill <jason@redhat.com>
Mon, 11 May 2020 19:09:24 +0000 (15:09 -0400)
We walk the lambda captures in cp_walk_subtrees, so we don't also need to
walk them here.

gcc/cp/ChangeLog
2020-05-11  Jason Merrill  <jason@redhat.com>

* pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Remove redundant
walking of capture list.

gcc/cp/ChangeLog
gcc/cp/pt.c

index f92c641..adbe287 100644 (file)
@@ -1,5 +1,10 @@
 2020-05-11  Jason Merrill  <jason@redhat.com>
 
+       * pt.c (find_parameter_packs_r) [LAMBDA_EXPR]: Remove redundant
+       walking of capture list.
+
+2020-05-11  Jason Merrill  <jason@redhat.com>
+
        * cp-tree.h (LOOKUP_EXPLICIT_TMPL_ARGS): Remove.
        * call.c (build_new_function_call): Don't set it.
        (build_new_method_call_1): Likewise.
index c609112..112426a 100644 (file)
@@ -3988,18 +3988,12 @@ find_parameter_packs_r (tree *tp, int *walk_subtrees, void* data)
 
     case LAMBDA_EXPR:
       {
-       /* Look at explicit captures.  */
-       for (tree cap = LAMBDA_EXPR_CAPTURE_LIST (t);
-            cap; cap = TREE_CHAIN (cap))
-         cp_walk_tree (&TREE_VALUE (cap), &find_parameter_packs_r, ppd,
-                       ppd->visited);
        /* Since we defer implicit capture, look in the parms and body.  */
        tree fn = lambda_function (t);
        cp_walk_tree (&TREE_TYPE (fn), &find_parameter_packs_r, ppd,
                      ppd->visited);
        cp_walk_tree (&DECL_SAVED_TREE (fn), &find_parameter_packs_r, ppd,
                      ppd->visited);
-       *walk_subtrees = 0;
        return NULL_TREE;
       }