Skip to content

Indirect Callee Changes Made to CallGraph are lost if PTA is run after that #1762

@hadi81

Description

@hadi81

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?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions