<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>