aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-alias.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/tree-ssa-alias.c')
-rw-r--r--gcc/tree-ssa-alias.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 5ed2d13..e3cdaf9 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -3080,11 +3080,13 @@ find_used_portions (tree *tp, int *walk_subtrees, void *lhs_p)
break;
case CALL_EXPR:
{
- tree *arg;
- for (arg = &TREE_OPERAND (*tp, 1); *arg; arg = &TREE_CHAIN (*arg))
+ int i;
+ int nargs = call_expr_nargs (*tp);
+ for (i = 0; i < nargs; i++)
{
- if (TREE_CODE (TREE_VALUE (*arg)) != ADDR_EXPR)
- find_used_portions (&TREE_VALUE (*arg), walk_subtrees, NULL);
+ tree *arg = &CALL_EXPR_ARG (*tp, i);
+ if (TREE_CODE (*arg) != ADDR_EXPR)
+ find_used_portions (arg, walk_subtrees, NULL);
}
*walk_subtrees = 0;
return NULL_TREE;