<div dir="ltr">Hello,<br><br>I am trying to extract a callgraph using DSA, but the analysis looks quite pessimistic. I use TDD analysis and here is my test code:<br><pre style="color:rgb(0,0,0);word-wrap:break-word;white-space:pre-wrap">#include <stdlib.h>
typedef void (*tX)(int a, int b);
typedef void (*tY)(int a);
typedef struct {
tX p ;
int n;
} msg;
static void A1(int a) { }
static void B2(int a, int b) { }
static void C2(int a, int b) { }
tY q;
static void decode(tX decoder_f){
decoder_f(1,2);
}
int main(void) {
msg *a = malloc(sizeof(msg));
q = &A1;
a->p = &B2;
decode(&C2);
return 0;
}
The result that I get is:
<pre style="word-wrap:break-word;white-space:pre-wrap">main: [malloc decode ]
A1: []
B2: []
C2: []
decode: [A1 B2 C2 ]
Why does "decode" function have two extra callees (A1 and B2)? Is it possible to filter them out?</pre>Kind Regards,
Maxim</pre></div>