#define LLVM_CLANG_LIVEVARIABLES_H
#include "clang/AST/Decl.h"
-#include "clang/Analysis/Support/ExprDeclBitVector.h"
+#include "clang/Analysis/Support/BlkExprDeclBitVector.h"
#include "clang/Analysis/FlowSensitive/DataflowValues.h"
namespace clang {
struct ObserverTy;
// We keep dataflow state for declarations and block-level expressions;
- typedef ExprDeclBitVector_Types::ValTy ValTy;
+ typedef StmtDeclBitVector_Types::ValTy ValTy;
// We need to keep track of both declarations and CFGBlock-level expressions,
// (so that we don't explore such expressions twice). We also want
// to compute liveness information for block-level expressions, since these
// act as "temporary" values.
- struct AnalysisDataTy : public ExprDeclBitVector_Types::AnalysisDataTy {
+ struct AnalysisDataTy : public StmtDeclBitVector_Types::AnalysisDataTy {
ObserverTy* Observer;
ValTy AlwaysLive;
#ifndef LLVM_CLANG_UNITVALS_H
#define LLVM_CLANG_UNITVALS_H
-#include "clang/Analysis/Support/ExprDeclBitVector.h"
+#include "clang/Analysis/Support/BlkExprDeclBitVector.h"
#include "clang/Analysis/FlowSensitive/DataflowValues.h"
namespace clang {
struct ObserverTy;
- struct AnalysisDataTy : public ExprDeclBitVector_Types::AnalysisDataTy {
+ struct AnalysisDataTy : public StmtDeclBitVector_Types::AnalysisDataTy {
AnalysisDataTy() : Observer(NULL), FullUninitTaint(true) {}
virtual ~AnalysisDataTy() {};
bool FullUninitTaint;
};
- typedef ExprDeclBitVector_Types::ValTy ValTy;
+ typedef StmtDeclBitVector_Types::ValTy ValTy;
//===--------------------------------------------------------------------===//
// ObserverTy - Observer for querying DeclRefExprs that use an uninitalized
namespace {
struct Merge {
- typedef ExprDeclBitVector_Types::ValTy ValTy;
+ typedef StmtDeclBitVector_Types::ValTy ValTy;
void operator()(ValTy& Dst, const ValTy& Src) {
Dst.OrDeclBits(Src);
- Dst.AndExprBits(Src);
+ Dst.AndBlkExprBits(Src);
}
};
void SetTopValue(UninitializedValues::ValTy& X) {
X.setDeclValues(AD);
- X.resetExprValues(AD);
+ X.resetBlkExprValues(AD);
}
bool VisitDeclRefExpr(DeclRefExpr* DR);
//===----------------------------------------------------------------------===//
namespace {
- typedef ExprDeclBitVector_Types::Union Merge;
+ typedef StmtDeclBitVector_Types::Union Merge;
typedef DataflowSolver<UninitializedValues,TransferFuncs,Merge> Solver;
}