CallTargetSet Namespace Reference

Typedefs

typedef Rose_STL_Container
< SgFunctionDeclaration * > 
SgFunctionDeclarationPtrList
typedef Rose_STL_Container
< SgClassDefinition * > 
SgClassDefinitionPtrList

Functions

std::vector
< SgFunctionDeclaration * > 
solveFunctionPointerCall (SgPointerDerefExp *, SgProject *)
std::vector
< SgFunctionDeclaration * > 
solveMemberFunctionPointerCall (SgExpression *, ClassHierarchyWrapper *)
Rose_STL_Container
< SgFunctionDeclaration * > 
solveFunctionPointerCallsFunctional (SgNode *node, SgFunctionType *functionType)
std::vector
< SgFunctionDeclaration * > 
solveMemberFunctionCall (SgClassType *, ClassHierarchyWrapper *, SgMemberFunctionDeclaration *, bool, bool includePureVirtualFunc=false)
std::vector
< SgFunctionDeclaration * > 
solveConstructorInitializer (SgConstructorInitializer *sgCtorInit)
 Returns the list of all constructors that may get called via an initialization.
ROSE_DLL_API void getPropertiesForExpression (SgExpression *exp, ClassHierarchyWrapper *classHierarchy, Rose_STL_Container< SgFunctionDeclaration * > &propList, bool includePureVirtualFunc=false)
void getDefinitionsForExpression (SgExpression *exp, ClassHierarchyWrapper *classHierarchy, Rose_STL_Container< SgFunctionDefinition * > &calleeList)
 Populates functionList with definitions of all functions that may get called.
void getDeclarationsForExpression (SgExpression *exp, ClassHierarchyWrapper *classHierarchy, Rose_STL_Container< SgFunctionDeclaration * > &calleeList, bool includePureVirtualFunc=false)
 Populates functionList with declarations of all functions that may get called.
void getExpressionsForDefinition (SgFunctionDefinition *targetDef, ClassHierarchyWrapper *classHierarchy, Rose_STL_Container< SgExpression * > &exps)
SgFunctionDeclarationgetFirstVirtualFunctionDefinitionFromAncestors (SgClassType *crtClass, SgMemberFunctionDeclaration *memberFunctionDeclaration, ClassHierarchyWrapper *classHierarchy)

Typedef Documentation

Definition at line 33 of file CallGraph.h.

Definition at line 34 of file CallGraph.h.


Function Documentation

std::vector<SgFunctionDeclaration*> CallTargetSet::solveFunctionPointerCall ( SgPointerDerefExp ,
SgProject  
)
std::vector<SgFunctionDeclaration*> CallTargetSet::solveMemberFunctionPointerCall ( SgExpression ,
ClassHierarchyWrapper  
)
Rose_STL_Container<SgFunctionDeclaration*> CallTargetSet::solveFunctionPointerCallsFunctional ( SgNode node,
SgFunctionType functionType 
)
std::vector<SgFunctionDeclaration*> CallTargetSet::solveMemberFunctionCall ( SgClassType ,
ClassHierarchyWrapper ,
SgMemberFunctionDeclaration ,
bool  ,
bool  includePureVirtualFunc = false 
)
std::vector<SgFunctionDeclaration*> CallTargetSet::solveConstructorInitializer ( SgConstructorInitializer sgCtorInit  ) 

Returns the list of all constructors that may get called via an initialization.

FIXME: There is a bug in this function. Consider the inheritance hierarchy A -> B -> C (C inherits from B, B inherits from A). Let C have an explicit constructor, without explictly calling B's constructor. We will only return the constructor for C

ROSE_DLL_API void CallTargetSet::getPropertiesForExpression ( SgExpression exp,
ClassHierarchyWrapper classHierarchy,
Rose_STL_Container< SgFunctionDeclaration * > &  propList,
bool  includePureVirtualFunc = false 
)
void CallTargetSet::getDefinitionsForExpression ( SgExpression exp,
ClassHierarchyWrapper classHierarchy,
Rose_STL_Container< SgFunctionDefinition * > &  calleeList 
)

Populates functionList with definitions of all functions that may get called.

This is basically a wrapper around getPropertiesForExpression that extracts the SgFunctionDefinition from the Properties object. This returns only callees that have definitions - to get all possible callees, use getDeclarationsForExpression

void CallTargetSet::getDeclarationsForExpression ( SgExpression exp,
ClassHierarchyWrapper classHierarchy,
Rose_STL_Container< SgFunctionDeclaration * > &  calleeList,
bool  includePureVirtualFunc = false 
)

Populates functionList with declarations of all functions that may get called.

This is basically a wrapper around getPropertiesForExpression.

void CallTargetSet::getExpressionsForDefinition ( SgFunctionDefinition targetDef,
ClassHierarchyWrapper classHierarchy,
Rose_STL_Container< SgExpression * > &  exps 
)
SgFunctionDeclaration* CallTargetSet::getFirstVirtualFunctionDefinitionFromAncestors ( SgClassType crtClass,
SgMemberFunctionDeclaration memberFunctionDeclaration,
ClassHierarchyWrapper classHierarchy 
)

Generated on 23 Sep 2015 for ROSE by  doxygen 1.6.1