diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2011-05-10 17:23:31 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2011-05-10 17:23:31 +0000 |
commit | d26e59864b3ea46ad8d4671a3c55f86cf5f2fa94 (patch) | |
tree | 7c389e370937901a10bb25ff1bb73eb2135042bd /gcc/cp/cp-tree.h | |
parent | dbcc9f08d5631a29708cf859689a46a1895111fa (diff) | |
download | gcc-d26e59864b3ea46ad8d4671a3c55f86cf5f2fa94.zip gcc-d26e59864b3ea46ad8d4671a3c55f86cf5f2fa94.tar.gz gcc-d26e59864b3ea46ad8d4671a3c55f86cf5f2fa94.tar.bz2 |
mark EXPR_PACK_EXPANSION as typed only
mark EXPR_PACK_EXPANSION as typed only
* cp-tree.def (EXPR_PACK_EXPANSION): Add an operand.
* cp-objcp-common.c (cp_common_init_ts): Mark it as TS_TYPED.
* cp-tree.h (PACK_EXPANSION_PARAMETER_PACKS): Use the new
operand of EXPR_PACK_EXPANSION.
(cp_tree_operand_length): Declare.
* tree.c (cp_tree_operand_length): Define.
(cp_tree_equal): Call it.
* pt.c (value_dependent_expr_P): Likewise.
* mangle.c (write_expression): Likewise.
From-SVN: r173625
Diffstat (limited to 'gcc/cp/cp-tree.h')
-rw-r--r-- | gcc/cp/cp-tree.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/cp/cp-tree.h b/gcc/cp/cp-tree.h index 53092ff..efcdeef 100644 --- a/gcc/cp/cp-tree.h +++ b/gcc/cp/cp-tree.h @@ -2734,7 +2734,10 @@ extern void decl_shadowed_for_var_insert (tree, tree); /* 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) TREE_CHAIN (NODE) +#define PACK_EXPANSION_PARAMETER_PACKS(NODE) \ + *(TREE_CODE (NODE) == EXPR_PACK_EXPANSION \ + ? &TREE_OPERAND (NODE, 1) \ + : &TREE_CHAIN (TYPE_PACK_EXPANSION_CHECK (NODE))) /* Determine if this is an argument pack. */ #define ARGUMENT_PACK_P(NODE) \ @@ -5430,6 +5433,7 @@ extern tree nonlambda_method_basetype (void); extern void maybe_add_lambda_conv_op (tree); /* in tree.c */ +extern int cp_tree_operand_length (const_tree); void cp_free_lang_data (tree t); extern tree force_target_expr (tree, tree, tsubst_flags_t); extern tree build_target_expr_with_type (tree, tree, tsubst_flags_t); |