]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c++: Remove SET_PACK_EXPANSION_PATTERN / SET_ARGUMENT_PACK_ARGS
authorPatrick Palka <ppalka@redhat.com>
Tue, 10 May 2022 15:52:29 +0000 (11:52 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 10 May 2022 15:52:29 +0000 (11:52 -0400)
Unlike in C, in C++ the conditional operator yields an lvalue if both
branches are lvalues, so these setter macros are unnecessary; we can
just assign to PACK_EXPANSION_PATTERN and ARGUMENT_PACK_ARGS directly.

gcc/cp/ChangeLog:

* coroutines.cc (instantiate_coro_traits): Adjust accordingly.
* cp-tree.def: Remove mention of SET_PACK_EXPANSION_PATTERN.
* cp-tree.h (SET_PACK_EXPANSION_PATTERN): Remove.
(SET_ARGUMENT_PACK_ARGS): Remove.
* module.cc (trees_in::tree_node): Adjust accordingly.
* parser.cc (make_char_string_pack): Likewise.
(make_string_pack): Likewise.
* pt.cc (make_pack_expansion): Likewise.
(template_parm_to_arg): Likewise.
(coerce_template_parameter_pack): Likewise.
(extract_fnparm_pack): Likewise.
(extract_locals_r): Likewise.
(make_argument_pack): Likewise.
(tsubst_argument_pack): Likewise.
(lookup_init_capture_pack): Likewise.
(type_unification_real): Likewise.
(unify_pack_expansion): Likewise.
(tsubst_initializer_list): Likewise.

gcc/cp/coroutines.cc
gcc/cp/cp-tree.def
gcc/cp/cp-tree.h
gcc/cp/module.cc
gcc/cp/parser.cc
gcc/cp/pt.cc

index 1d886b31c77e1e2dd2c5bf3236c7844cdbafe681..edb3b706ddc515067907e625e75a740591366516 100644 (file)
@@ -344,7 +344,7 @@ instantiate_coro_traits (tree fndecl, location_t kw)
     }
 
   tree argtypepack = cxx_make_type (TYPE_ARGUMENT_PACK);
-  SET_ARGUMENT_PACK_ARGS (argtypepack, argtypes);
+  ARGUMENT_PACK_ARGS (argtypepack) = argtypes;
 
   tree targ = make_tree_vec (2);
   TREE_VEC_ELT (targ, 0) = TREE_TYPE (functyp);
index 6371f67ebc4a42b7187e01f753e997f3e156c753..f9cbd339f19cd3987ba79d9b9540dfa16c7536a8 100644 (file)
@@ -386,8 +386,6 @@ DEFTREECODE (NONTYPE_ARGUMENT_PACK, "nontype_argument_pack", tcc_expression, 1)
    the type or expression that we will substitute into with each
    argument in an argument pack.
 
-   SET_PACK_EXPANSION_PATTERN sets the expansion pattern.
-
    PACK_EXPANSION_PARAMETER_PACKS contains a TREE_LIST of the parameter
    packs that are used in this pack expansion.
 
index 29fc0e5f829bfafcf932690f1c8da0cfceb41719..cfda8337ad8a0f210fd8b1cbe3f42bb8971cb72d 100644 (file)
@@ -3903,14 +3903,6 @@ struct GTY(()) lang_decl {
   (TREE_CODE (PACK_EXPANSION_CHECK (NODE)) == TYPE_PACK_EXPANSION \
    ? TREE_TYPE (NODE) : TREE_OPERAND (NODE, 0))
 
-/* Sets the type or expression pattern for a TYPE_PACK_EXPANSION or
-   EXPR_PACK_EXPANSION.  */
-#define SET_PACK_EXPANSION_PATTERN(NODE,VALUE)  \
-  if (TREE_CODE (PACK_EXPANSION_CHECK (NODE)) == TYPE_PACK_EXPANSION)  \
-    TREE_TYPE (NODE) = VALUE;                   \
-  else                                          \
-    TREE_OPERAND (NODE, 0) = VALUE
-
 /* The list of parameter packs used in the PACK_EXPANSION_* node. The
    TREE_VALUE of each TREE_LIST contains the parameter packs.  */
 #define PACK_EXPANSION_PARAMETER_PACKS(NODE)           \
@@ -3963,14 +3955,6 @@ struct GTY(()) lang_decl {
   (TREE_CODE (ARGUMENT_PACK_CHECK (NODE)) == TYPE_ARGUMENT_PACK \
    ? TREE_TYPE (NODE) : TREE_OPERAND (NODE, 0))
 
-/* Set the arguments stored in an argument pack. VALUE must be a
-   TREE_VEC.  */
-#define SET_ARGUMENT_PACK_ARGS(NODE,VALUE)     \
-  if (TREE_CODE (ARGUMENT_PACK_CHECK (NODE)) == TYPE_ARGUMENT_PACK)  \
-    TREE_TYPE (NODE) = VALUE;                           \
-  else                                                  \
-    TREE_OPERAND (NODE, 0) = VALUE
-
 /* Whether the argument pack is "incomplete", meaning that more
    arguments can still be deduced. Incomplete argument packs are only
    used when the user has provided an explicit template argument list
index bd4771bef72b6236a7065050cd11ff4202bc9849..27b8f64ce753d2dc28b458850e1a11305d44baf5 100644 (file)
@@ -9338,7 +9338,7 @@ trees_in::tree_node (bool is_use)
            if (!get_overrun ())
              {
                tree pack = cxx_make_type (TYPE_ARGUMENT_PACK);
-               SET_ARGUMENT_PACK_ARGS (pack, res);
+               ARGUMENT_PACK_ARGS (pack) = res;
                res = pack;
              }
            break;
@@ -9351,7 +9351,7 @@ trees_in::tree_node (bool is_use)
                {
                  tree expn = cxx_make_type (TYPE_PACK_EXPANSION);
                  SET_TYPE_STRUCTURAL_EQUALITY (expn);
-                 SET_PACK_EXPANSION_PATTERN (expn, res);
+                 PACK_EXPANSION_PATTERN (expn) = res;
                  PACK_EXPANSION_PARAMETER_PACKS (expn) = param_packs;
                  PACK_EXPANSION_LOCAL_P (expn) = local;
                  res = expn;
index 5071c030f53e503244364627c64273e2ca54efe7..4ed9feaa427808cfed5563f83d219712b57f47b1 100644 (file)
@@ -4649,7 +4649,7 @@ make_char_string_pack (tree value)
     }
 
   /* Build the argument packs.  */
-  SET_ARGUMENT_PACK_ARGS (argpack, charvec);
+  ARGUMENT_PACK_ARGS (argpack) = charvec;
 
   TREE_VEC_ELT (argvec, 0) = argpack;
 
@@ -4684,7 +4684,7 @@ make_string_pack (tree value)
                            double_int::from_buffer (str + i * sz, sz));
 
   /* Build the argument packs.  */
-  SET_ARGUMENT_PACK_ARGS (argpack, charvec);
+  ARGUMENT_PACK_ARGS (argpack) = charvec;
 
   TREE_VEC_ELT (argvec, 1) = argpack;
 
index 6e666c2cde3d43eeb5afbcd591b8457a40192517..9932d861af6b51c4ea21f462871c22c31442135f 100644 (file)
@@ -4219,7 +4219,7 @@ make_pack_expansion (tree arg, tsubst_flags_t complain)
 
       /* Create the pack expansion type for the base type.  */
       purpose = cxx_make_type (TYPE_PACK_EXPANSION);
-      SET_PACK_EXPANSION_PATTERN (purpose, TREE_PURPOSE (arg));
+      PACK_EXPANSION_PATTERN (purpose) = TREE_PURPOSE (arg);
       PACK_EXPANSION_PARAMETER_PACKS (purpose) = parameter_packs;
       PACK_EXPANSION_LOCAL_P (purpose) = at_function_scope_p ();
 
@@ -4237,7 +4237,7 @@ make_pack_expansion (tree arg, tsubst_flags_t complain)
   result = for_types
      ? cxx_make_type (TYPE_PACK_EXPANSION)
      : make_node (EXPR_PACK_EXPANSION);
-  SET_PACK_EXPANSION_PATTERN (result, arg);
+  PACK_EXPANSION_PATTERN (result) = arg;
   if (TREE_CODE (result) == EXPR_PACK_EXPANSION)
     {
       /* Propagate type and const-expression information.  */
@@ -4852,7 +4852,7 @@ template_parm_to_arg (tree t)
          TREE_VEC_ELT (vec, 0) = make_pack_expansion (t);
 
          t = cxx_make_type (TYPE_ARGUMENT_PACK);
-         SET_ARGUMENT_PACK_ARGS (t, vec);
+         ARGUMENT_PACK_ARGS (t) = vec;
        }
     }
   else
@@ -4869,7 +4869,7 @@ template_parm_to_arg (tree t)
          TREE_VEC_ELT (vec, 0) = make_pack_expansion (t);
 
          t  = make_node (NONTYPE_ARGUMENT_PACK);
-         SET_ARGUMENT_PACK_ARGS (t, vec);
+         ARGUMENT_PACK_ARGS (t) = vec;
        }
       else
        t = convert_from_reference (t);
@@ -8718,7 +8718,7 @@ coerce_template_parameter_pack (tree parms,
         _DECL as a use rather than a declaration.  */
       tree decl = TREE_VALUE (parm);
       tree exp = cxx_make_type (TYPE_PACK_EXPANSION);
-      SET_PACK_EXPANSION_PATTERN (exp, decl);
+      PACK_EXPANSION_PATTERN (exp) = decl;
       PACK_EXPANSION_PARAMETER_PACKS (exp) = packs;
       SET_TYPE_STRUCTURAL_EQUALITY (exp);
 
@@ -8818,7 +8818,7 @@ coerce_template_parameter_pack (tree parms,
       TREE_CONSTANT (argument_pack) = 1;
     }
 
-  SET_ARGUMENT_PACK_ARGS (argument_pack, packed_args);
+  ARGUMENT_PACK_ARGS (argument_pack) = packed_args;
   if (CHECKING_P)
     SET_NON_DEFAULT_TEMPLATE_ARGS_COUNT (packed_args,
                                         TREE_VEC_LENGTH (packed_args));
@@ -12460,7 +12460,7 @@ extract_fnparm_pack (tree tmpl_parm, tree *spec_p)
        }
 
       /* Build the argument packs.  */
-      SET_ARGUMENT_PACK_ARGS (argpack, parmvec);
+      ARGUMENT_PACK_ARGS (argpack) = parmvec;
     }
   *spec_p = spec_parm;
 
@@ -13023,7 +13023,7 @@ extract_locals_r (tree *tp, int */*walk_subtrees*/, void *data_)
                        {
                          spec = copy_node (spec);
                          args = copy_node (args);
-                         SET_ARGUMENT_PACK_ARGS (spec, args);
+                         ARGUMENT_PACK_ARGS (spec) = args;
                          register_local_specialization (spec, *tp);
                        }
                      TREE_VEC_ELT (args, i) = carg;
@@ -13410,7 +13410,7 @@ make_argument_pack (tree vec)
       pack = make_node (NONTYPE_ARGUMENT_PACK);
       TREE_CONSTANT (pack) = 1;
     }
-  SET_ARGUMENT_PACK_ARGS (pack, vec);
+  ARGUMENT_PACK_ARGS (pack) = vec;
   return pack;
 }
 
@@ -13463,7 +13463,7 @@ tsubst_argument_pack (tree orig_arg, tree args, tsubst_flags_t complain,
          TREE_CONSTANT (new_arg) = TREE_CONSTANT (orig_arg);
        }
 
-      SET_ARGUMENT_PACK_ARGS (new_arg, pack_args);
+      ARGUMENT_PACK_ARGS (new_arg) = pack_args;
     }
 
   return new_arg;
@@ -18442,7 +18442,7 @@ lookup_init_capture_pack (tree decl)
       len = TREE_VEC_LENGTH (fpack);
       vec = make_tree_vec (len);
       r = make_node (NONTYPE_ARGUMENT_PACK);
-      SET_ARGUMENT_PACK_ARGS (r, vec);
+      ARGUMENT_PACK_ARGS (r) = vec;
     }
   for (int i = 0; i < len; ++i)
     {
@@ -22911,7 +22911,7 @@ type_unification_real (tree tparms,
              else
                arg = cxx_make_type (TYPE_ARGUMENT_PACK);
 
-             SET_ARGUMENT_PACK_ARGS (arg, make_tree_vec (0));
+             ARGUMENT_PACK_ARGS (arg) = make_tree_vec (0);
 
              TREE_VEC_ELT (targs, i) = arg;
              continue;
@@ -23771,7 +23771,7 @@ unify_pack_expansion (tree tparms, tree targs, tree packed_parms,
           else
            result = cxx_make_type (TYPE_ARGUMENT_PACK);
 
-          SET_ARGUMENT_PACK_ARGS (result, new_args);
+         ARGUMENT_PACK_ARGS (result) = new_args;
 
           /* Note the deduced argument packs for this parameter
              pack.  */
@@ -23785,7 +23785,7 @@ unify_pack_expansion (tree tparms, tree targs, tree packed_parms,
              now we have a complete set of arguments.  */
           tree explicit_args = ARGUMENT_PACK_EXPLICIT_ARGS (old_pack);
 
-          SET_ARGUMENT_PACK_ARGS (old_pack, new_args);
+         ARGUMENT_PACK_ARGS (old_pack) = new_args;
           ARGUMENT_PACK_INCOMPLETE_P (old_pack) = 1;
           ARGUMENT_PACK_EXPLICIT_ARGS (old_pack) = explicit_args;
         }
@@ -26899,7 +26899,7 @@ tsubst_initializer_list (tree t, tree argvec)
                  else
                    {
                      value = expr;
-                     SET_PACK_EXPANSION_PATTERN (value, TREE_VALUE (arg));
+                     PACK_EXPANSION_PATTERN (value) = TREE_VALUE (arg);
                    }
                  expanded_exprs
                    = tsubst_pack_expansion (value, argvec,