clang
15.0.0git
|
#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/Optional.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 <string>
#include <type_traits>
#include <utility>
#include <vector>
Go to the source code of this file.
Classes | |
class | clang::threadSafety::BeforeSet |
Namespaces | |
clang | |
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. More... | |
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. More... | |
static const ValueDecl * | getValueDecl (const Expr *Exp) |
Gets the value decl pointer from DeclRefExprs or MemberExprs. More... | |
static bool | getStaticBooleanValue (Expr *E, bool &TCond) |
static CXXConstructorDecl * | findConstructorForByValueReturn (const CXXRecordDecl *RD) |
static Expr * | buildFakeCtorCall (CXXConstructorDecl *CD, ArrayRef< Expr * > Args, SourceLocation Loc) |
static bool | neverReturns (const CFGBlock *B) |
|
static |
Definition at line 2070 of file ThreadSafety.cpp.
References clang::CXXConstructExpr::CK_Complete, clang::CXXConstructExpr::Create(), clang::Decl::getASTContext(), clang::CXXMethodDecl::getParent(), and clang::ASTContext::getRecordType().
|
static |
Find the appropriate source locations to use when producing diagnostics for each block in the CFG.
Definition at line 809 of file ThreadSafety.cpp.
|
static |
Definition at line 2053 of file ThreadSafety.cpp.
References clang::CXXRecordDecl::ctors(), and clang::CXXConstructorDecl::isCopyConstructor().
Definition at line 1369 of file ThreadSafety.cpp.
Gets the value decl pointer from DeclRefExprs or MemberExprs.
Definition at line 1184 of file ThreadSafety.cpp.
Definition at line 2202 of file ThreadSafety.cpp.
References clang::CFGBlock::back(), clang::CFGBlock::empty(), clang::CFGBlock::hasNoReturnElement(), and clang::Last.
|
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(), and clang::SourceLocation::isValid().