clang 20.0.0git
Classes | Namespaces | Functions
ThreadSafety.cpp File Reference
#include "clang/Analysis/Analyses/ThreadSafety.h"
#include "clang/AST/Attr.h"
#include "clang/AST/Decl.h"
#include "clang/AST/DeclCXX.h"
#include "clang/AST/DeclGroup.h"
#include "clang/AST/Expr.h"
#include "clang/AST/ExprCXX.h"
#include "clang/AST/OperationKinds.h"
#include "clang/AST/Stmt.h"
#include "clang/AST/StmtVisitor.h"
#include "clang/AST/Type.h"
#include "clang/Analysis/Analyses/PostOrderCFGView.h"
#include "clang/Analysis/Analyses/ThreadSafetyCommon.h"
#include "clang/Analysis/Analyses/ThreadSafetyTIL.h"
#include "clang/Analysis/Analyses/ThreadSafetyTraverse.h"
#include "clang/Analysis/Analyses/ThreadSafetyUtil.h"
#include "clang/Analysis/AnalysisDeclContext.h"
#include "clang/Analysis/CFG.h"
#include "clang/Basic/Builtins.h"
#include "clang/Basic/LLVM.h"
#include "clang/Basic/OperatorKinds.h"
#include "clang/Basic/SourceLocation.h"
#include "clang/Basic/Specifiers.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/ImmutableMap.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
#include <algorithm>
#include <cassert>
#include <functional>
#include <iterator>
#include <memory>
#include <optional>
#include <string>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  clang::threadSafety::BeforeSet
 

Namespaces

namespace  clang
 The JSON file list parser is used to communicate input to InstallAPI.
 
namespace  clang::threadSafety
 

Functions

static void warnInvalidLock (ThreadSafetyHandler &Handler, const Expr *MutexExp, const NamedDecl *D, const Expr *DeclExp, StringRef Kind)
 Issue a warning about an invalid lock expression.
 
static void findBlockLocations (CFG *CFGraph, const PostOrderCFGView *SortedGraph, std::vector< CFGBlockInfo > &BlockInfo)
 Find the appropriate source locations to use when producing diagnostics for each block in the CFG.
 
static const ValueDeclgetValueDecl (const Expr *Exp)
 Gets the value decl pointer from DeclRefExprs or MemberExprs.
 
static bool getStaticBooleanValue (Expr *E, bool &TCond)
 
static const ExprUnpackConstruction (const Expr *E)
 
static bool neverReturns (const CFGBlock *B)
 

Function Documentation

◆ findBlockLocations()

static void findBlockLocations ( CFG CFGraph,
const PostOrderCFGView SortedGraph,
std::vector< CFGBlockInfo > &  BlockInfo 
)
static

Find the appropriate source locations to use when producing diagnostics for each block in the CFG.

Definition at line 808 of file ThreadSafety.cpp.

References clang::CFG::getExit().

◆ getStaticBooleanValue()

static bool getStaticBooleanValue ( Expr E,
bool TCond 
)
static

Definition at line 1383 of file ThreadSafety.cpp.

References E, and getStaticBooleanValue().

Referenced by getStaticBooleanValue().

◆ getValueDecl()

static const ValueDecl * getValueDecl ( const Expr Exp)
static

Gets the value decl pointer from DeclRefExprs or MemberExprs.

Definition at line 1198 of file ThreadSafety.cpp.

References getValueDecl().

Referenced by getValueDecl().

◆ neverReturns()

static bool neverReturns ( const CFGBlock B)
static

◆ UnpackConstruction()

static const Expr * UnpackConstruction ( const Expr E)
static

◆ warnInvalidLock()

static void warnInvalidLock ( ThreadSafetyHandler Handler,
const Expr MutexExp,
const NamedDecl D,
const Expr DeclExp,
StringRef  Kind 
)
static

Issue a warning about an invalid lock expression.

Definition at line 68 of file ThreadSafety.cpp.

References clang::Expr::getExprLoc(), clang::threadSafety::ThreadSafetyHandler::handleInvalidLockExp(), clang::SourceLocation::isValid(), and Loc.