aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2003-08-20 17:46:48 -0400
committerJason Merrill <jason@gcc.gnu.org>2003-08-20 17:46:48 -0400
commit68ad9159aa8f37386cc910950e1814825e2335b6 (patch)
treea4be84606bce231dfa45e9238c38069766649fd4 /gcc
parentc8e60672eff02dc404f86f6fdaecbc45c622f838 (diff)
downloadgcc-68ad9159aa8f37386cc910950e1814825e2335b6.zip
gcc-68ad9159aa8f37386cc910950e1814825e2335b6.tar.gz
gcc-68ad9159aa8f37386cc910950e1814825e2335b6.tar.bz2
tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'.
* tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'. (EXPR_CHECK): Don't check for 'r' or 's' if we're checking IS_EXPR_CODE_CLASS. * calls.c (calls_function_1): Likewise. * fold-const.c (fold): Likewise. * tree.c (iterative_hash_expr): Likewise. * tree-inline.c (walk_tree, copy_tree_r): Likewise. From-SVN: r70617
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/calls.c4
-rw-r--r--gcc/fold-const.c2
-rw-r--r--gcc/tree-inline.c10
-rw-r--r--gcc/tree.c2
-rw-r--r--gcc/tree.h5
6 files changed, 19 insertions, 14 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b50dbb1..2ff2414 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+2003-08-20 Jason Merrill <jason@redhat.com>
+
+ * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'.
+ (EXPR_CHECK): Don't check for 'r' or 's' if we're
+ checking IS_EXPR_CODE_CLASS.
+ * calls.c (calls_function_1): Likewise.
+ * fold-const.c (fold): Likewise.
+ * tree.c (iterative_hash_expr): Likewise.
+ * tree-inline.c (walk_tree, copy_tree_r): Likewise.
+
2003-08-20 Gunther Nikl <gni@gecko.de>
* config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code
diff --git a/gcc/calls.c b/gcc/calls.c
index bdb4288..f4bf6d3 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -262,8 +262,8 @@ calls_function_1 (tree exp, int which)
break;
}
- /* Only expressions, references, and blocks can contain calls. */
- if (! IS_EXPR_CODE_CLASS (class) && class != 'r' && class != 'b')
+ /* Only expressions and blocks can contain calls. */
+ if (! IS_EXPR_CODE_CLASS (class) && class != 'b')
return 0;
for (i = 0; i < length; i++)
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 488239d..ef7c086 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -5032,7 +5032,7 @@ fold (tree expr)
do arithmetic on them. */
wins = 0;
}
- else if (IS_EXPR_CODE_CLASS (kind) || kind == 'r')
+ else if (IS_EXPR_CODE_CLASS (kind))
{
int len = first_rtl_op (code);
int i;
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 07664bd..8893b26 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -1661,15 +1661,11 @@ walk_tree (tree *tp, walk_tree_fn func, void *data, void *htab_)
}
/* Handle common cases up front. */
- if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code))
- || TREE_CODE_CLASS (code) == 'r'
- || TREE_CODE_CLASS (code) == 's')
+ if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)))
#else /* INLINER_FOR_JAVA */
if (code != EXIT_BLOCK_EXPR
&& code != SAVE_EXPR
- && (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code))
- || TREE_CODE_CLASS (code) == 'r'
- || TREE_CODE_CLASS (code) == 's'))
+ && IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code)))
#endif /* INLINER_FOR_JAVA */
{
int i, len;
@@ -1862,9 +1858,7 @@ copy_tree_r (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
/* We make copies of most nodes. */
if (IS_EXPR_CODE_CLASS (TREE_CODE_CLASS (code))
- || TREE_CODE_CLASS (code) == 'r'
|| TREE_CODE_CLASS (code) == 'c'
- || TREE_CODE_CLASS (code) == 's'
|| code == TREE_LIST
|| code == TREE_VEC
|| (*lang_hooks.tree_inlining.tree_chain_matters_p) (*tp))
diff --git a/gcc/tree.c b/gcc/tree.c
index 3bae512..d38a87d 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -3527,7 +3527,7 @@ iterative_hash_expr (tree t, hashval_t val)
else
abort ();
}
- else if (IS_EXPR_CODE_CLASS (class) || class == 'r')
+ else if (IS_EXPR_CODE_CLASS (class))
{
val = iterative_hash_object (code, val);
diff --git a/gcc/tree.h b/gcc/tree.h
index 6826109..0563f08 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -57,7 +57,8 @@ extern const char tree_code_type[];
expression. */
#define IS_EXPR_CODE_CLASS(CLASS) \
- ((CLASS) == '<' || (CLASS) == '1' || (CLASS) == '2' || (CLASS) == 'e')
+ ((CLASS) == '<' || (CLASS) == '1' || (CLASS) == '2' || (CLASS) == 'e' \
+ || (CLASS) == 'r' || (CLASS) == 's')
/* Number of argument-words in each kind of tree-node. */
@@ -291,7 +292,7 @@ struct tree_common GTY(())
#define EXPR_CHECK(T) __extension__ \
({ const tree __t = (T); \
char const __c = TREE_CODE_CLASS (TREE_CODE (__t)); \
- if (!IS_EXPR_CODE_CLASS (__c) && __c != 'r' && __c != 's') \
+ if (!IS_EXPR_CODE_CLASS (__c)) \
tree_class_check_failed (__t, 'e', __FILE__, __LINE__, \
__FUNCTION__); \
__t; })