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. | |
| 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) |
| SgFunctionDeclaration * | getFirstVirtualFunctionDefinitionFromAncestors (SgClassType *crtClass, SgMemberFunctionDeclaration *memberFunctionDeclaration, ClassHierarchyWrapper *classHierarchy) |
| typedef Rose_STL_Container<SgFunctionDeclaration *> CallTargetSet::SgFunctionDeclarationPtrList |
Definition at line 33 of file CallGraph.h.
| typedef Rose_STL_Container<SgClassDefinition *> CallTargetSet::SgClassDefinitionPtrList |
Definition at line 34 of file CallGraph.h.
| 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
| 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 | |||
| ) |
1.4.7