function calls

Hi all,
I am trying to find the function calls from the .c or .cpp input file. I used ASTConsumer and VisitStmt for AST traversal.

class CGASTActionConsumer:public ASTConsumer{
virtual bool HandleTopLevelDecl(DeclGroupRef DG)
//find each FunctionDecl;

class Builder:public StmtVisitor
//visit CallExpr

I am able to find the simple function calls but the function calls from switch case, while loop etc is not getting . what can i do to get the function calls from switch statement ,while statement etc.


I'd use the RecursiveASTVisitor for that.


There are 2 virtual function VisitFunctionDecl and VisitCallExpr.
If you overload VisitFunctionDecl, you well get all function declaration as well as function
prototypes ( as FunctionDecl object holds both defination as well as prototype)

Whereas , VisitCallExpr is to get all function calls from the source file ( input file)

I think , this will help you

Suhas Limaye.