aboutsummaryrefslogtreecommitdiff
path: root/include/clang
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang')
-rw-r--r--include/clang/Analysis/FlowSensitive/DataflowSolver.h24
-rw-r--r--include/clang/Analysis/Support/BlkExprDeclBitVector.h8
2 files changed, 8 insertions, 24 deletions
diff --git a/include/clang/Analysis/FlowSensitive/DataflowSolver.h b/include/clang/Analysis/FlowSensitive/DataflowSolver.h
index 0ed4c8667f..3861259336 100644
--- a/include/clang/Analysis/FlowSensitive/DataflowSolver.h
+++ b/include/clang/Analysis/FlowSensitive/DataflowSolver.h
@@ -200,28 +200,9 @@ private:
}
}
- void ResetValues(CFG& cfg, ValTy& V, const CFGBlock* B,
- dataflow::forward_analysis_tag){
-
- if (B == &cfg.getEntry())
- TF.SetTopValue(V);
- else
- V.resetValues(D.getAnalysisData());
- }
-
- void ResetValues(CFG& cfg, ValTy& V, const CFGBlock* B,
- dataflow::backward_analysis_tag){
-
- if (B == &cfg.getExit())
- TF.SetTopValue(V);
- else
- V.resetValues(D.getAnalysisData());
- }
-
void ProcessMerge(CFG& cfg, const CFGBlock* B) {
-
- ValTy& V = TF.getVal();
- ResetValues(cfg, V, B, AnalysisDirTag());
+ ValTy& V = TF.getVal();
+ TF.SetTopValue(V);
// Merge dataflow values from all predecessors of this block.
MergeOperatorTy Merge;
@@ -287,7 +268,6 @@ private:
/// UpdateEdgeValue - Update the value associated with a given edge.
void UpdateEdgeValue(BlockEdge E, ValTy& V, const CFGBlock* TargetBlock) {
-
EdgeDataMapTy& M = D.getEdgeDataMap();
typename EdgeDataMapTy::iterator I = M.find(E);
diff --git a/include/clang/Analysis/Support/BlkExprDeclBitVector.h b/include/clang/Analysis/Support/BlkExprDeclBitVector.h
index 5bd42332ba..a592be8154 100644
--- a/include/clang/Analysis/Support/BlkExprDeclBitVector.h
+++ b/include/clang/Analysis/Support/BlkExprDeclBitVector.h
@@ -216,8 +216,7 @@ struct StmtDeclBitVector_Types {
}
public:
-
-
+
void resetBlkExprValues(AnalysisDataTy& AD) {
BlkExprBV.resize(AD.getNumBlkExprs());
BlkExprBV.reset();
@@ -233,6 +232,11 @@ struct StmtDeclBitVector_Types {
resetBlkExprValues(AD);
}
+ void setValues(AnalysisDataTy& AD) {
+ setDeclValues(AD);
+ setBlkExprValues(AD);
+ }
+
bool operator==(const ValTy& RHS) const {
return ParentRef(*this) == ParentRef(RHS)
&& BlkExprBV == RHS.BlkExprBV;