Deleted Added
full compact
ThreadSafetyLogical.h (276479) ThreadSafetyLogical.h (280031)
1//===- ThreadSafetyLogical.h -----------------------------------*- C++ --*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9// This file defines a representation for logical expressions with SExpr leaves
10// that are used as part of fact-checking capability expressions.
11//===----------------------------------------------------------------------===//
12
1//===- ThreadSafetyLogical.h -----------------------------------*- C++ --*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9// This file defines a representation for logical expressions with SExpr leaves
10// that are used as part of fact-checking capability expressions.
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_CLANG_THREAD_SAFETY_LOGICAL_H
14#define LLVM_CLANG_THREAD_SAFETY_LOGICAL_H
13#ifndef LLVM_CLANG_ANALYSIS_ANALYSES_THREADSAFETYLOGICAL_H
14#define LLVM_CLANG_ANALYSIS_ANALYSES_THREADSAFETYLOGICAL_H
15
16#include "clang/Analysis/Analyses/ThreadSafetyTIL.h"
17
18namespace clang {
19namespace threadSafety {
20namespace lexpr {
21
22class LExpr {

--- 13 unchanged lines hidden (view full) ---

36protected:
37 LExpr(Opcode Kind) : Kind(Kind) {}
38
39private:
40 Opcode Kind;
41};
42
43class Terminal : public LExpr {
15
16#include "clang/Analysis/Analyses/ThreadSafetyTIL.h"
17
18namespace clang {
19namespace threadSafety {
20namespace lexpr {
21
22class LExpr {

--- 13 unchanged lines hidden (view full) ---

36protected:
37 LExpr(Opcode Kind) : Kind(Kind) {}
38
39private:
40 Opcode Kind;
41};
42
43class Terminal : public LExpr {
44 til::SExprRef Expr;
44 til::SExpr *Expr;
45
46public:
47 Terminal(til::SExpr *Expr) : LExpr(LExpr::Terminal), Expr(Expr) {}
48
45
46public:
47 Terminal(til::SExpr *Expr) : LExpr(LExpr::Terminal), Expr(Expr) {}
48
49 const til::SExpr *expr() const { return Expr.get(); }
50 til::SExpr *expr() { return Expr.get(); }
49 const til::SExpr *expr() const { return Expr; }
50 til::SExpr *expr() { return Expr; }
51
52 static bool classof(const LExpr *E) { return E->kind() == LExpr::Terminal; }
53};
54
55class BinOp : public LExpr {
56 LExpr *LHS, *RHS;
57
58protected:

--- 40 unchanged lines hidden (view full) ---

99bool LExpr::implies(const LExpr *RHS) const {
100 return lexpr::implies(this, RHS);
101}
102
103}
104}
105}
106
51
52 static bool classof(const LExpr *E) { return E->kind() == LExpr::Terminal; }
53};
54
55class BinOp : public LExpr {
56 LExpr *LHS, *RHS;
57
58protected:

--- 40 unchanged lines hidden (view full) ---

99bool LExpr::implies(const LExpr *RHS) const {
100 return lexpr::implies(this, RHS);
101}
102
103}
104}
105}
106
107#endif // LLVM_CLANG_THREAD_SAFETY_LOGICAL_H
107#endif
108
108