Lines Matching refs:rl

29 static int get_absolute_rl_internal(struct expression *expr, struct range_list **rl, int *recurse_c…
94 struct range_list *rl; in handle_address() local
104 rl = custom_handle_variable(expr); in handle_address()
105 if (rl) { in handle_address()
106 *res = rl; in handle_address()
160 struct range_list *rl; in handle_bitwise_negate() local
163 if (!get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval)) in handle_bitwise_negate()
165 if (!sval.type && !rl_to_sval(rl, &sval)) in handle_bitwise_negate()
175 struct range_list *rl; in untrusted_type_min() local
177 rl = var_user_rl(expr); in untrusted_type_min()
178 return rl && sval_is_min(rl_min(rl)); in untrusted_type_min()
183 struct range_list *rl; in handle_minus_preop() local
193 if (!get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval)) in handle_minus_preop()
205 type = rl_type(rl); in handle_minus_preop()
208 if (sval_is_negative(rl_min(rl))) { in handle_minus_preop()
214 neg = rl_intersection(rl, neg); in handle_minus_preop()
231 if (!sval_is_negative(rl_max(rl))) { in handle_minus_preop()
237 pos = rl_intersection(rl, pos); in handle_minus_preop()
338 static bool max_is_unknown_max(struct range_list *rl) in max_is_unknown_max() argument
354 if (type_bits(rl_type(rl)) < 31) in max_is_unknown_max()
356 return sval_is_max(rl_max(rl)); in max_is_unknown_max()
455 struct range_list *rl; in handle_mod_rl() local
474 if (get_rl_internal(expr->left, implied, recurse_cnt, &rl) && rl && in handle_mod_rl()
475 rl_max(rl).uvalue < right.uvalue) in handle_mod_rl()
476 right.uvalue = rl_max(rl).uvalue; in handle_mod_rl()
565 struct range_list *left_rl, *rl; in handle_left_shift() local
579 rl = rl_binop(left_rl, SPECIAL_LEFTSHIFT, alloc_rl(right, right)); in handle_left_shift()
580 if (!rl) in handle_left_shift()
582 *res = rl; in handle_left_shift()
598 static int has_actual_ranges(struct range_list *rl) in has_actual_ranges() argument
602 FOR_EACH_PTR(rl, tmp) { in has_actual_ranges()
645 struct range_list *rl; in handle_binop_rl_helper() local
656 rl = handle_implied_binop(left_rl, expr->op, right_rl); in handle_binop_rl_helper()
657 if (rl) { in handle_binop_rl_helper()
658 *res = rl; in handle_binop_rl_helper()
699 struct range_list *rl; in handle_binop_rl() local
710 rl = custom_handle_variable(expr); in handle_binop_rl()
711 if (rl) { in handle_binop_rl()
712 *res = rl; in handle_binop_rl()
967 struct range_list *rl; in var_to_absolute_rl() local
974 if (get_mtag_rl(expr, &rl)) in var_to_absolute_rl()
975 return rl; in var_to_absolute_rl()
976 if (get_db_type_rl(expr, &rl) && !is_whole_rl(rl)) in var_to_absolute_rl()
977 return rl; in var_to_absolute_rl()
989 struct range_list *rl; in handle_variable() local
1002 rl = custom_handle_variable(expr); in handle_variable()
1003 if (rl) { in handle_variable()
1004 if (!rl_to_sval(rl, res_sval)) in handle_variable()
1005 *res = rl; in handle_variable()
1157 struct range_list *rl; in handle_strlen() local
1179 if (get_implied_return(expr, &rl)) { in handle_strlen()
1180 *res = rl; in handle_strlen()
1190 struct range_list *rl; in handle_builtin_constant_p() local
1193 if (get_rl_internal(arg, RL_EXACT, recurse_cnt, &rl)) in handle_builtin_constant_p()
1219 struct range_list *rl; in handle_call_rl() local
1244 rl = custom_handle_variable(expr); in handle_call_rl()
1245 if (rl) { in handle_call_rl()
1246 *res = rl; in handle_call_rl()
1252 if (get_implied_return(expr, &rl)) { in handle_call_rl()
1253 *res = rl; in handle_call_rl()
1256 rl = db_return_vals(expr); in handle_call_rl()
1257 if (rl) { in handle_call_rl()
1258 *res = rl; in handle_call_rl()
1266 struct range_list *rl; in handle_cast() local
1271 if (get_rl_sval(expr->cast_expression, implied, recurse_cnt, &rl, &sval)) { in handle_cast()
1275 *res = cast_rl(type, rl); in handle_cast()
1294 struct range_list *rl; in get_offset_from_down() local
1336 if (!get_rl_sval(index, implied, recurse_cnt, &rl, &tmp_sval)) in get_offset_from_down()
1352 rl = rl_binop(rl, '*', alloc_rl(sval, sval)); in get_offset_from_down()
1354 *res = rl_binop(rl, '+', alloc_rl(sval, sval)); in get_offset_from_down()
1395 struct range_list *rl = (void *)-1UL; in get_rl_sval() local
1411 handle_cast(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1427 handle_preop_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1430 get_rl_sval(expr->unop, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1433 handle_binop_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1436 handle_comparison_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1439 handle_logical_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1447 handle_conditional_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1450 handle_call_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1457 rl = alloc_rl(valid_ptr_min_sval, valid_ptr_max_sval); in get_rl_sval()
1460 handle_offsetof_rl(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1468 handle_variable(expr, implied, recurse_cnt, &rl, &sval); in get_rl_sval()
1472 if (rl == (void *)-1UL) in get_rl_sval()
1473 rl = NULL; in get_rl_sval()
1475 if (sval.type || (rl && rl_to_sval(rl, &sval))) { in get_rl_sval()
1482 if (rl) { in get_rl_sval()
1483 *res = rl; in get_rl_sval()
1495 struct range_list *rl = NULL; in get_rl_internal() local
1498 if (!get_rl_sval(expr, implied, recurse_cnt, &rl, &sval)) in get_rl_internal()
1504 *res = rl; in get_rl_internal()
1510 struct range_list *rl = NULL; in get_rl_helper() local
1519 if (!get_rl_sval(expr, implied, &recurse_cnt, &rl, &sval)) in get_rl_helper()
1525 *res = rl; in get_rl_helper()
1610 struct range_list *rl; in get_implied_value_internal() local
1614 if (!get_rl_sval(expr, RL_IMPLIED, recurse_cnt, &rl, res_sval)) in get_implied_value_internal()
1616 if (!res_sval->type && !rl_to_sval(rl, res_sval)) in get_implied_value_internal()
1623 struct range_list *rl; in get_implied_value() local
1625 if (!get_rl_helper(expr, RL_IMPLIED, &rl) || in get_implied_value()
1626 !rl_to_sval(rl, sval)) in get_implied_value()
1633 struct range_list *rl; in get_implied_value_fast() local
1642 if (get_rl_helper(expr, RL_IMPLIED, &rl) && in get_implied_value_fast()
1643 rl_to_sval(rl, sval)) in get_implied_value_fast()
1653 struct range_list *rl; in get_implied_min() local
1655 if (!get_rl_helper(expr, RL_IMPLIED, &rl) || !rl) in get_implied_min()
1657 *sval = rl_min(rl); in get_implied_min()
1663 struct range_list *rl; in get_implied_max() local
1665 if (!get_rl_helper(expr, RL_IMPLIED, &rl) || !rl) in get_implied_max()
1667 *sval = rl_max(rl); in get_implied_max()
1671 int get_implied_rl(struct expression *expr, struct range_list **rl) in get_implied_rl() argument
1673 if (!get_rl_helper(expr, RL_IMPLIED, rl) || !*rl) in get_implied_rl()
1678 static int get_absolute_rl_internal(struct expression *expr, struct range_list **rl, int *recurse_c… in get_absolute_rl_internal() argument
1680 *rl = NULL; in get_absolute_rl_internal()
1681 get_rl_internal(expr, RL_ABSOLUTE, recurse_cnt, rl); in get_absolute_rl_internal()
1682 if (!*rl) in get_absolute_rl_internal()
1683 *rl = alloc_whole_rl(get_type(expr)); in get_absolute_rl_internal()
1687 int get_absolute_rl(struct expression *expr, struct range_list **rl) in get_absolute_rl() argument
1689 *rl = NULL; in get_absolute_rl()
1690 get_rl_helper(expr, RL_ABSOLUTE, rl); in get_absolute_rl()
1691 if (!*rl) in get_absolute_rl()
1692 *rl = alloc_whole_rl(get_type(expr)); in get_absolute_rl()
1696 int get_real_absolute_rl(struct expression *expr, struct range_list **rl) in get_real_absolute_rl() argument
1698 *rl = NULL; in get_real_absolute_rl()
1699 get_rl_helper(expr, RL_REAL_ABSOLUTE, rl); in get_real_absolute_rl()
1700 if (!*rl) in get_real_absolute_rl()
1701 *rl = alloc_whole_rl(get_type(expr)); in get_real_absolute_rl()
1707 struct range_list **rl) in custom_get_absolute_rl() argument
1711 *rl = NULL; in custom_get_absolute_rl()
1713 ret = get_rl_helper(expr, RL_REAL_ABSOLUTE, rl); in custom_get_absolute_rl()
1718 int get_implied_rl_var_sym(const char *var, struct symbol *sym, struct range_list **rl) in get_implied_rl_var_sym() argument
1723 *rl = estate_rl(state); in get_implied_rl_var_sym()
1724 if (*rl) in get_implied_rl_var_sym()
1731 struct range_list *rl; in get_hard_max() local
1733 if (!get_rl_helper(expr, RL_HARD, &rl) || !rl) in get_hard_max()
1735 *sval = rl_max(rl); in get_hard_max()
1741 struct range_list *rl; in get_fuzzy_min() local
1744 if (!get_rl_helper(expr, RL_FUZZY, &rl) || !rl) in get_fuzzy_min()
1746 tmp = rl_min(rl); in get_fuzzy_min()
1755 struct range_list *rl; in get_fuzzy_max() local
1758 if (!get_rl_helper(expr, RL_FUZZY, &rl) || !rl) in get_fuzzy_max()
1760 max = rl_max(rl); in get_fuzzy_max()
1769 struct range_list *rl; in get_absolute_min() local
1775 rl = NULL; in get_absolute_min()
1776 get_rl_helper(expr, RL_REAL_ABSOLUTE, &rl); in get_absolute_min()
1777 if (rl) in get_absolute_min()
1778 *sval = rl_min(rl); in get_absolute_min()
1789 struct range_list *rl; in get_absolute_max() local
1795 rl = NULL; in get_absolute_max()
1796 get_rl_helper(expr, RL_REAL_ABSOLUTE, &rl); in get_absolute_max()
1797 if (rl) in get_absolute_max()
1798 *sval = rl_max(rl); in get_absolute_max()