ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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. More...
 
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. More...
 
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. More...
 
void getExpressionsForDefinition (SgFunctionDefinition *targetDef, ClassHierarchyWrapper *classHierarchy, Rose_STL_Container< SgExpression * > &exps)
 
SgFunctionDeclarationgetFirstVirtualFunctionDefinitionFromAncestors (SgClassType *crtClass, SgMemberFunctionDeclaration *memberFunctionDeclaration, ClassHierarchyWrapper *classHierarchy)
 

Typedef Documentation

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 
)