reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
   42 class Terminal : public LExpr {
   54 class BinOp : public LExpr {
   82 class Not : public LExpr {

References

include/llvm/Support/Casting.h
   57   static inline bool doit(const From &Val) {
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
tools/clang/include/clang/Analysis/Analyses/ThreadSafetyLogical.h
   33   inline bool implies(const LExpr *RHS) const;
   42 class Terminal : public LExpr {
   46   Terminal(til::SExpr *Expr) : LExpr(LExpr::Terminal), Expr(Expr) {}
   51   static bool classof(const LExpr *E) { return E->kind() == LExpr::Terminal; }
   51   static bool classof(const LExpr *E) { return E->kind() == LExpr::Terminal; }
   54 class BinOp : public LExpr {
   55   LExpr *LHS, *RHS;
   58   BinOp(LExpr *LHS, LExpr *RHS, Opcode Code) : LExpr(Code), LHS(LHS), RHS(RHS) {}
   58   BinOp(LExpr *LHS, LExpr *RHS, Opcode Code) : LExpr(Code), LHS(LHS), RHS(RHS) {}
   61   const LExpr *left() const { return LHS; }
   62   LExpr *left() { return LHS; }
   64   const LExpr *right() const { return RHS; }
   65   LExpr *right() { return RHS; }
   70   And(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::And) {}
   70   And(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::And) {}
   70   And(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::And) {}
   72   static bool classof(const LExpr *E) { return E->kind() == LExpr::And; }
   72   static bool classof(const LExpr *E) { return E->kind() == LExpr::And; }
   77   Or(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::Or) {}
   77   Or(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::Or) {}
   77   Or(LExpr *LHS, LExpr *RHS) : BinOp(LHS, RHS, LExpr::Or) {}
   79   static bool classof(const LExpr *E) { return E->kind() == LExpr::Or; }
   79   static bool classof(const LExpr *E) { return E->kind() == LExpr::Or; }
   82 class Not : public LExpr {
   83   LExpr *Exp;
   86   Not(LExpr *Exp) : LExpr(LExpr::Not), Exp(Exp) {}
   86   Not(LExpr *Exp) : LExpr(LExpr::Not), Exp(Exp) {}
   88   const LExpr *exp() const { return Exp; }
   89   LExpr *exp() { return Exp; }
   91   static bool classof(const LExpr *E) { return E->kind() == LExpr::Not; }
   91   static bool classof(const LExpr *E) { return E->kind() == LExpr::Not; }
   96 bool implies(const LExpr *LHS, const LExpr *RHS);
   96 bool implies(const LExpr *LHS, const LExpr *RHS);
   98 bool LExpr::implies(const LExpr *RHS) const {
tools/clang/lib/Analysis/ThreadSafetyLogical.cpp
   19 static bool implies(const LExpr *LHS, bool LNeg, const LExpr *RHS, bool RNeg) {
   19 static bool implies(const LExpr *LHS, bool LNeg, const LExpr *RHS, bool RNeg) {
   44   case LExpr::And:
   51   case LExpr::Or:
   58   case LExpr::Not:
   62   case LExpr::Terminal:
   69   case LExpr::And:
   76   case LExpr::Or:
   83   case LExpr::Not:
   87   case LExpr::Terminal:
  105 bool implies(const LExpr *LHS, const LExpr *RHS) {
  105 bool implies(const LExpr *LHS, const LExpr *RHS) {