Print this page
12724 update smatch to 0.6.1-rc1-il-5
*** 27,38 ****
static int my_id;
static void match_assign(struct expression *expr)
{
struct expression *left, *right;
! mtag_t left_tag;
! int offset;
sval_t sval;
if (expr->op != '=')
return;
--- 27,38 ----
static int my_id;
static void match_assign(struct expression *expr)
{
struct expression *left, *right;
! mtag_t right_tag, left_tag;
! int right_offset, left_offset;
sval_t sval;
if (expr->op != '=')
return;
*** 44,60 ****
if (!get_implied_value(right, &sval))
return;
if (sval_cmp(sval, valid_ptr_min_sval) < 0 ||
sval_cmp(sval, valid_ptr_max_sval) > 0)
return;
! if (sval.uvalue & MTAG_OFFSET_MASK)
! return;
! if (!expr_to_mtag_offset(left, &left_tag, &offset))
return;
! sql_insert_mtag_map(sval.uvalue, -offset, left_tag);
}
void register_mtag_map(int id)
{
my_id = id;
--- 44,61 ----
if (!get_implied_value(right, &sval))
return;
if (sval_cmp(sval, valid_ptr_min_sval) < 0 ||
sval_cmp(sval, valid_ptr_max_sval) > 0)
return;
! right_tag = sval.uvalue & ~MTAG_OFFSET_MASK;
! right_offset = sval.uvalue & MTAG_OFFSET_MASK;
! if (!expr_to_mtag_offset(left, &left_tag, &left_offset) ||
! left_offset >= MTAG_OFFSET_MASK)
return;
! sql_insert_mtag_map(left_tag, left_offset, right_tag, right_offset);
}
void register_mtag_map(int id)
{
my_id = id;