MCPcopy Create free account
hub / github.com/FuzzAnything/PromptFuzz / is_data_and_size

Function is_data_and_size

src/program/infer/static_infer.rs:556–584  ·  view source on GitHub ↗
(array_arg: &Node, integer_arg: &Node, visitor: &Visitor)

Source from the content-addressed store, hash-verified

554 }
555
556 pub fn is_data_and_size(array_arg: &Node, integer_arg: &Node, visitor: &Visitor) -> bool {
557 let array_arg = strip_prefix(array_arg);
558 let integer_arg = strip_prefix(integer_arg);
559 if let Clang::DeclRefExpr(array_dre) = &array_arg.kind {
560 let array_name = array_dre.get_name_as_string();
561 if let Clang::DeclRefExpr(integer_dre) = &integer_arg.kind {
562 let integer_name = integer_dre.get_name_as_string();
563 if array_name == "data" && integer_name == "size" {
564 return true;
565 }
566 if let Some(integer_init) = integer_dre.get_var_init(visitor) {
567 if is_data_and_size(array_arg, integer_init, visitor) {
568 return true;
569 }
570 if let Some(array_init) = array_dre.get_var_init(visitor) {
571 if is_data_and_size(array_init, integer_init, visitor) {
572 return true;
573 }
574 }
575 }
576 if let Some(array_init) = array_dre.get_var_init(visitor) {
577 if is_data_and_size(array_init, integer_arg, visitor) {
578 return true;
579 }
580 }
581 }
582 }
583 false
584 }
585
586 /// Whether this arg is the sizeof of var_name.
587 pub fn is_sizeof_expr_of_var(integer_arg: &Node, array_name: &str, visitor: &Visitor) -> bool {

Callers 1

infer_constraintsFunction · 0.85

Calls 3

strip_prefixFunction · 0.85
get_name_as_stringMethod · 0.80
get_var_initMethod · 0.80

Tested by

no test coverage detected