#include "clang/Analysis/FlowSensitive/Arena.h"
#include "clang/Analysis/FlowSensitive/Formula.h"
#include "clang/Analysis/FlowSensitive/Value.h"
#include "llvm/Support/Error.h"
#include <string>
namespace clang::dataflow {
static std::pair<const Formula *, const Formula *>
canonicalFormulaPair(const Formula &LHS, const Formula &RHS) { … }
template <class Key, class ComputeFunc>
const Formula &cached(llvm::DenseMap<Key, const Formula *> &Cache, Key K,
ComputeFunc &&Compute) { … }
const Formula &Arena::makeAtomRef(Atom A) { … }
const Formula &Arena::makeAnd(const Formula &LHS, const Formula &RHS) { … }
const Formula &Arena::makeOr(const Formula &LHS, const Formula &RHS) { … }
const Formula &Arena::makeNot(const Formula &Val) { … }
const Formula &Arena::makeImplies(const Formula &LHS, const Formula &RHS) { … }
const Formula &Arena::makeEquals(const Formula &LHS, const Formula &RHS) { … }
IntegerValue &Arena::makeIntLiteral(llvm::APInt Value) { … }
BoolValue &Arena::makeBoolValue(const Formula &F) { … }
namespace {
const Formula *parse(Arena &A, llvm::StringRef &In) { … }
class FormulaParseError : public llvm::ErrorInfo<FormulaParseError> { … };
char FormulaParseError::ID = …;
}
llvm::Expected<const Formula &> Arena::parseFormula(llvm::StringRef In) { … }
}