I have updated CallGraph to add indirect callee targets in its indirectCallMap.
callgraph->getIndCallMap()[callsite].insert(calleeFun);
After that I update PAG and ICFG:
builder.updateCallGraph(callgraph); => Updates PAG assignment edges
icfg->updateCallGraph(callgraph); => Updates ICFG call and return edges
If I run points to analysis after this, the indirect callee changes I made to the callgraph, are lost.
AndersenWaveDiff::releaseAndersenWaveDiff();
ander = AndersenWaveDiff::createAndersenWaveDiff(pag);
This is because AndersenWaveDiff::releaseAndersenWaveDiff(); deletes the PAG and creates a new one.
Is there anyway I can run the points to analysis after updating callgraph, pag and icfg?