| 609 | |
| 610 | |
| 611 | static int is_mod_func_in_expr(struct expr *e, const char *name, int param_no) |
| 612 | { |
| 613 | if (e->type==ELEM_T) { |
| 614 | if (e->left.type==ACTION_O) |
| 615 | if (is_mod_func_used((struct action*)e->right.v.data,name,param_no)==1) |
| 616 | return 1; |
| 617 | } else if (e->type==EXP_T) { |
| 618 | if (e->left.v.expr && is_mod_func_in_expr(e->left.v.expr,name,param_no)==1) |
| 619 | return 1; |
| 620 | if (e->right.v.expr && is_mod_func_in_expr(e->right.v.expr,name,param_no)==1) |
| 621 | return 1; |
| 622 | } |
| 623 | return 0; |
| 624 | } |
| 625 | |
| 626 | |
| 627 | int is_mod_func_used(struct action *a, const char *name, int param_no) |
no test coverage detected