aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-iterate.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-iterate.c')
-rw-r--r--gcc/c-iterate.c20
1 files changed, 1 insertions, 19 deletions
diff --git a/gcc/c-iterate.c b/gcc/c-iterate.c
index 1692d2a..0e545d8 100644
--- a/gcc/c-iterate.c
+++ b/gcc/c-iterate.c
@@ -241,27 +241,9 @@ collect_iterators (exp, list)
case 'e':
case 'r':
{
- int num_args = tree_code_length[(int) TREE_CODE (exp)];
+ int num_args = first_rtl_op (TREE_CODE (exp));
int i;
- /* Some tree codes have RTL, not trees, as operands. */
- switch (TREE_CODE (exp))
- {
- case CALL_EXPR:
- num_args = 2;
- break;
- case METHOD_CALL_EXPR:
- num_args = 3;
- break;
- case WITH_CLEANUP_EXPR:
- num_args = 1;
- break;
- case RTL_EXPR:
- return list;
- default:
- break;
- }
-
for (i = 0; i < num_args; i++)
list = collect_iterators (TREE_OPERAND (exp, i), list);
return list;