379 return 0;
380
381 if (strcmp(right_type_name, left_type_name) == 0) {
382 prev_ans = 1;
383 return 1;
384 }
385
386 return 0;
387 }
388
389 static void match_assign_value(struct expression *expr)
390 {
391 char *member, *right_member;
392 struct range_list *rl;
393 struct symbol *type;
394
395 if (!cur_func_sym)
396 return;
397
398 type = get_type(expr->left);
399 if (type && type->type == SYM_STRUCT)
400 return;
401
402 member = get_member_name(expr->left);
403 if (!member)
404 return;
405
406 /* if we're saying foo->mtu = bar->mtu then that doesn't add information */
407 right_member = get_member_name(expr->right);
408 if (right_member && strcmp(right_member, member) == 0)
409 goto free;
410
411 if (is_fake_call(expr->right)) {
412 if (is_ignored_macro())
413 goto free;
414 if (is_ignored_function())
415 goto free;
416 if (is_uncasted_pointer_assign())
417 goto free;
418 if (is_uncasted_fn_param_from_db())
419 goto free;
420 if (is_container_of())
421 goto free;
|
379 return 0;
380
381 if (strcmp(right_type_name, left_type_name) == 0) {
382 prev_ans = 1;
383 return 1;
384 }
385
386 return 0;
387 }
388
389 static void match_assign_value(struct expression *expr)
390 {
391 char *member, *right_member;
392 struct range_list *rl;
393 struct symbol *type;
394
395 if (!cur_func_sym)
396 return;
397
398 type = get_type(expr->left);
399 member = get_member_name(expr->left);
400 if (!member)
401 return;
402
403 /* if we're saying foo->mtu = bar->mtu then that doesn't add information */
404 right_member = get_member_name(expr->right);
405 if (right_member && strcmp(right_member, member) == 0)
406 goto free;
407
408 if (is_fake_call(expr->right)) {
409 if (is_ignored_macro())
410 goto free;
411 if (is_ignored_function())
412 goto free;
413 if (is_uncasted_pointer_assign())
414 goto free;
415 if (is_uncasted_fn_param_from_db())
416 goto free;
417 if (is_container_of())
418 goto free;
|