1#include <featureTests.h> 
    2#ifdef ROSE_ENABLE_SOURCE_ANALYSIS 
    7#include "DataflowCFG.h" 
   25bool isNonMutatingOperator(
SgNode* n);
 
   28bool 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, 
 
  104typedef 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();
 
 
  200void prependToScopeStmt(
SgNode *target, 
SgNode *newNode, 
void* data);
 
  203void appendToScopeStmt(
SgNode *target, 
SgNode *newNode, 
void* data);
 
This class represents the notion of an expression. Expressions are derived from SgLocatedNodes,...
 
This class represents the concept of a function declaration statement.
 
This class represents the notion of a declared variable.
 
This class represents strings within the IR nodes.
 
This class represents the base class for all IR nodes within Sage III.
 
This class represents a source project, with a list of SgFile objects and global information about th...
 
This class represents the notion of a statement.
 
This class represents the base class for all types.
 
This class represents the variable refernece in expressions.
 
This class represents the concept of a C or C++ variable declaration.
 
This class represents the concept of a variable name within the compiler (a shared container for the ...
 
This class represents the location of the code associated with the IR node in the original source cod...
 
A node in the control flow graph.
 
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...