aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@redhat.com>2022-05-10 11:52:29 -0400
committerPatrick Palka <ppalka@redhat.com>2022-05-10 11:52:29 -0400
commitee18dc41035725910f2b6e6c4283f3547f362ae9 (patch)
treec6959dcee438f4b6606342f6667e04691ea4c651 /gcc
parentdc6c96f0707aba6c2c94f41f3ccd0713381e372c (diff)
downloadgcc-ee18dc41035725910f2b6e6c4283f3547f362ae9.zip
gcc-ee18dc41035725910f2b6e6c4283f3547f362ae9.tar.gz
gcc-ee18dc41035725910f2b6e6c4283f3547f362ae9.tar.bz2
c++: Remove SET_PACK_EXPANSION_PATTERN / SET_ARGUMENT_PACK_ARGS
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/coroutines.cc2
-rw-r--r--gcc/cp/cp-tree.def2
-rw-r--r--gcc/cp/cp-tree.h16
-rw-r--r--gcc/cp/module.cc4
-rw-r--r--gcc/cp/parser.cc4
-rw-r--r--gcc/cp/pt.cc30
6 files changed, 20 insertions, 38 deletions
diff --git a/gcc/cp/coroutines.cc b/gcc/cp/coroutines.cc
index 1d886b3..edb3b70 100644
--- a/gcc/cp/coroutines.cc
+++ b/gcc/cp/coroutines.cc
@@ -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);
diff --git a/gcc/cp/cp-tree.def b/gcc/cp/cp-tree.def
index 6371f67..f9cbd33 100644
--- a/gcc/cp/cp-tree.def
+++ b/gcc/cp/cp-tree.def
@@ -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.
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h
index 29fc0e5..cfda833 100644
--- a/gcc/cp/cp-tree.h
+++ b/gcc/cp/cp-tree.h
@@ -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
diff --git a/gcc/cp/module.cc b/gcc/cp/module.cc
index bd4771b..27b8f64 100644
--- a/gcc/cp/module.cc
+++ b/gcc/cp/module.cc
@@ -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;
diff --git a/gcc/cp/parser.cc b/gcc/cp/parser.cc
index 5071c03..4ed9fea 100644
--- a/gcc/cp/parser.cc
+++ b/gcc/cp/parser.cc
@@ -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;
diff --git a/gcc/cp/pt.cc b/gcc/cp/pt.cc
index 6e666c2..9932d86 100644
--- a/gcc/cp/pt.cc
+++ b/gcc/cp/pt.cc
@@ -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,