7 print "$0 <smatch output file> <function> <parameter>\n";
8 print "Give this program a function and parameter and it follows to find\n";
9 print "how the parameter gets passed down to lower levels.\n'";
30 if ($param_map{$link}{used
} == $USED) {
33 ${param_map
}{$link}->{used
} = $USED;
37 foreach my $l (@
{$param_map{$link}{links
}}){
56 if (!defined($param_map{$one})) {
57 $param_map{$one} = {used
=> $UNUSED, links
=> []};
59 push @
{$param_map{$one}{links
}}, $two;
68 if (/.*?:\d+ (.*?)\(\) info: param_mapper (\d+) => (.*?) (\d+)/) {
69 add_link
("$1%$2", "$3%$4");
76 foreach my $func (keys %param_map){
77 ($param_map{$func}{used
} = $UNUSED);
86 if (!defined($file) or !defined($func) or !defined($param)) {
91 printf("Error: $file does not exist.\n");
98 follow
($func, $param);
102 if (!defined($func) || !defined($param)) {