//===- ThreadSafetyLogical.cpp ---------------------------------*- C++ --*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // This file defines a representation for logical expressions with SExpr leaves // that are used as part of fact-checking capability expressions. //===----------------------------------------------------------------------===// #include "clang/Analysis/Analyses/ThreadSafetyLogical.h" usingnamespacellvm; usingnamespaceclang::threadSafety::lexpr; // Implication. We implement De Morgan's Laws by maintaining LNeg and RNeg // to keep track of whether LHS and RHS are negated. static bool implies(const LExpr *LHS, bool LNeg, const LExpr *RHS, bool RNeg) { … } namespace clang { namespace threadSafety { namespace lexpr { bool implies(const LExpr *LHS, const LExpr *RHS) { … } } } }