aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Palka <ppalka@gcc.gnu.org>2015-12-17 03:46:27 +0000
committerPatrick Palka <ppalka@gcc.gnu.org>2015-12-17 03:46:27 +0000
commit5fdfa03e795034058a66f641eb9d1f4499052639 (patch)
tree7b9235cae70f31a65a8914b02f17e8d4ff8dcb73
parenta2f325f94a35e1817bdcfbf6db9df1d90837ec7c (diff)
downloadgcc-5fdfa03e795034058a66f641eb9d1f4499052639.zip
gcc-5fdfa03e795034058a66f641eb9d1f4499052639.tar.gz
gcc-5fdfa03e795034058a66f641eb9d1f4499052639.tar.bz2
Avoid code duplication in cp_tree_[operand|code]_length
gcc/cp/ChangeLog: * tree.c (cp_tree_operand_length): Define in terms of cp_tree_code_length. From-SVN: r231735
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/tree.c19
2 files changed, 8 insertions, 16 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1ffa6eb..91bc456 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2015-12-16 Patrick Palka <ppalka@gcc.gnu.org>
+
+ * tree.c (cp_tree_operand_length): Define in terms of
+ cp_tree_code_length.
+
2015-12-16 Martin Sebor <msebor@redhat.com>
PR objc++/68932
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index 0c0987d..ae176d0 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -4427,23 +4427,10 @@ cp_tree_operand_length (const_tree t)
{
enum tree_code code = TREE_CODE (t);
- switch (code)
- {
- case PREINCREMENT_EXPR:
- case PREDECREMENT_EXPR:
- case POSTINCREMENT_EXPR:
- case POSTDECREMENT_EXPR:
- return 1;
+ if (TREE_CODE_CLASS (code) == tcc_vl_exp)
+ return VL_EXP_OPERAND_LENGTH (t);
- case ARRAY_REF:
- return 2;
-
- case EXPR_PACK_EXPANSION:
- return 1;
-
- default:
- return TREE_OPERAND_LENGTH (t);
- }
+ return cp_tree_code_length (code);
}
/* Like cp_tree_operand_length, but takes a tree_code CODE. */