1 #include <featureTests.h>
2 #ifdef ROSE_ENABLE_SOURCE_ANALYSIS
4 #ifndef NODE_CONST_ANALYSIS_H
5 #define NODE_CONST_ANALYSIS_H
7 #include "genericDataflowCommon.h"
9 #include "VirtualCFGIterator.h"
11 #include "CallGraphTraverse.h"
12 #include "analysisCommon.h"
15 #include "latticeFull.h"
16 #include "printAnalysisStates.h"
21 extern int nodeConstAnalysisDebugLevel;
34 static const int uninitialized=0;
39 static const int bottom=1;
42 static const int valKnown=2;
44 static const int top=3;
48 static const int noAssign=bottom;
49 static const int constVal=valKnown;
50 static const int multVal=top;
66 this->valID = that.valID;
67 this->level = that.level;
73 if(level == uninitialized)
97 bool increment(
int val=1);
102 bool operator==(
Lattice* that);
110 short getValConst()
const;
118 bool set(
unsigned long valID);
124 std::string str(std::string indent=
"");
145 std::vector<Lattice*>& initLattices, std::vector<NodeFact*>& initFacts);