You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The control flow connection of user_data and println! in this example is correctly captured.
fnfixed(user_data:&PrivateUserData) -> bool{if user_data.key.len() > 10{println!("key is longer than 10!");returntrue;}}
However a refactoring into a separate function looses the connection:
fnbroken(user_data:&PrivateUserData) -> bool{if user_data.key.len() > 10{returnprint_and_return_true();}}fnprint_and_return_true() -> bool{println!("key is longer than 10!");returntrue;}
I think this could be one of two reasons. Either the PDG we construct doesn’t contain any call sites with no edges (unlikely I think) or alternatively we forward propagate the control flow influences from caller to callee based on edges from the entry nodes instead of just all nodes. Yikes.
The text was updated successfully, but these errors were encountered:
The control flow connection of
user_data
andprintln!
in this example is correctly captured.However a refactoring into a separate function looses the connection:
I think this could be one of two reasons. Either the PDG we construct doesn’t contain any call sites with no edges (unlikely I think) or alternatively we forward propagate the control flow influences from caller to callee based on edges from the entry nodes instead of just all nodes. Yikes.
The text was updated successfully, but these errors were encountered: