15 #ifndef LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SMTEXPR_H 16 #define LLVM_CLANG_STATICANALYZER_CORE_PATHSENSITIVE_SMTEXPR_H 19 #include "llvm/ADT/FoldingSet.h" 31 llvm::FoldingSetNodeID ID1, ID2;
37 virtual void Profile(llvm::FoldingSetNodeID &
ID)
const {
46 virtual void print(raw_ostream &OS)
const = 0;
48 LLVM_DUMP_METHOD
void dump()
const {
print(llvm::errs()); }
virtual bool equal_to(SMTExpr const &other) const =0
Query the SMT solver and returns true if two sorts are equal (same kind and bit width).
Generic base class for SMT exprs.
virtual void Profile(llvm::FoldingSetNodeID &ID) const
virtual ~SMTExpr()=default
virtual void print(raw_ostream &OS) const =0
friend bool operator==(SMTExpr const &LHS, SMTExpr const &RHS)
LLVM_DUMP_METHOD void dump() const
Dataflow Directional Tag Classes.
Defines the clang::TargetInfo interface.
std::shared_ptr< SMTExpr > SMTExprRef
Shared pointer for SMTExprs, used by SMTSolver API.
bool operator<(const SMTExpr &Other) const