1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
7 #include "DataflowCFG.h"
25 bool isNonMutatingOperator(
SgNode* n);
28 bool isNonMutatingSubTree(
SgNode* n);
46 std::string getFileInfoString(
SgNode* n);
48 std::string getFileInfoString(
CFGNode n);
80 void createTmpVarInit(
SgType* varType, std::string newName,
bool byReference,
104 typedef void (*CFGTransform)(
SgNode *target,
SgNode* newNode,
void* data);
108 typedef enum {insBef, insAft, callback} modType;
124 std::string str() {
return ""; }
127 class insertRequest:
public modRequest{
135 this->type = type_arg;
136 this->newNode = newNode;
137 this->origNode = origNode;
140 SgNode* getTgtNode() {
return origNode; }
146 class transformRequest:
public modRequest{
147 CFGTransform callbackFunc;
153 transformRequest(CFGTransform callbackFunc,
SgNode *&target,
SgNode* newNode,
void* data)
155 this->type = callback;
156 this->target = target;
157 this->newNode = newNode;
158 this->callbackFunc = callbackFunc;
167 std::list<modRequest*> requests;
173 void beginTransaction();
181 void transform(CFGTransform callbackFunc,
SgNode* n,
SgNode* newNode,
void* data);
186 void commitTransaction();
200 void prependToScopeStmt(
SgNode *target,
SgNode *newNode,
void* data);
203 void appendToScopeStmt(
SgNode *target,
SgNode *newNode,
void* data);
This class represents the base class for all types.
This class represents the location of the code associated with the IR node in the original source cod...
This class represents the notion of a declared variable.
This class represents the concept of a function declaration statement.
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes, since similar to statement, expressions have a concrete location within the user's source code.
This class represents strings within the IR nodes.
ROSE_DLL_API void replaceStatement(SgStatement *oldStmt, SgStatement *newStmt, bool movePreprocessinInfo=false)
Replace a statement with another. Move preprocessing information from oldStmt to newStmt if requested...
A node in the control flow graph.
This class represents the base class for all IR nodes within Sage III.
This class represents the concept of a variable name within the compiler (a shared container for the ...
This class represents the notion of a statement.
This class represents the variable refernece in expressions.
This class represents a source project, with a list of SgFile objects and global information about th...
This class represents the concept of a C or C++ variable declaration.