clang 22.0.0git
clang::dataflow::statusor_model Namespace Reference

Classes

class  MatchFinder
 A class to allow finding matches over the Clang AST. More...
class  UncheckedStatusOrAccessDiagnoser
class  UncheckedStatusOrAccessModel
struct  UncheckedStatusOrAccessModelOptions

Typedefs

using LatticeTransferState
using StatementMatcher

Functions

clang::ast_matchers::DeclarationMatcher statusOrClass ()
clang::ast_matchers::DeclarationMatcher statusClass ()
clang::ast_matchers::DeclarationMatcher statusOrOperatorBaseClass ()
clang::ast_matchers::TypeMatcher statusOrType ()
RecordStorageLocationlocForStatus (RecordStorageLocation &StatusOrLoc)
StorageLocationlocForOk (RecordStorageLocation &StatusLoc)
BoolValuevalForOk (RecordStorageLocation &StatusLoc, Environment &Env)
llvm::StringMap< QualTypegetSyntheticFields (QualType Ty, QualType StatusType, const CXXRecordDecl &RD)
BoolValueinitializeStatusOr (RecordStorageLocation &StatusOrLoc, Environment &Env)
BoolValueinitializeStatus (RecordStorageLocation &StatusLoc, Environment &Env)
bool isStatusOrType (QualType Type)
bool isStatusType (QualType Type)
QualType findStatusType (const ASTContext &Ctx)
CFGMatchSwitch< LatticeTransferStatebuildTransferMatchSwitch (ASTContext &Ctx, CFGMatchSwitchBuilder< LatticeTransferState > Builder)
static bool namespaceEquals (const NamespaceDecl *NS, clang::ArrayRef< clang::StringRef > NamespaceNames)
static bool isTypeNamed (QualType Type, clang::ArrayRef< clang::StringRef > NS, StringRef Name)
static bool isStatusOrOperatorBaseType (QualType Type)
static bool isSafeUnwrap (RecordStorageLocation *StatusOrLoc, const Environment &Env)
static ClassTemplateSpecializationDeclgetStatusOrBaseClass (const QualType &Ty)
static QualType getStatusOrValueType (ClassTemplateSpecializationDecl *TRD)
static auto isStatusOrMemberCallWithName (llvm::StringRef member_name)
static auto isStatusOrOperatorCallWithName (llvm::StringRef operator_name)
static auto valueCall ()
static auto valueOperatorCall ()
static auto buildDiagnoseMatchSwitch (const UncheckedStatusOrAccessModelOptions &Options)
static void transferStatusOrOkCall (const CXXMemberCallExpr *Expr, const MatchFinder::MatchResult &, LatticeTransferState &State)

Typedef Documentation

◆ LatticeTransferState

Initial value:
A common form of state shared between the cases of a transfer function.
Definition MatchSwitch.h:41

Definition at line 84 of file UncheckedStatusOrAccessModel.h.

◆ StatementMatcher

Definition at line 146 of file ASTMatchers.h.

Function Documentation

◆ buildDiagnoseMatchSwitch()

◆ buildTransferMatchSwitch()

◆ findStatusType()

QualType clang::dataflow::statusor_model::findStatusType ( const ASTContext & Ctx)

◆ getStatusOrBaseClass()

ClassTemplateSpecializationDecl * clang::dataflow::statusor_model::getStatusOrBaseClass ( const QualType & Ty)
static

◆ getStatusOrValueType()

◆ getSyntheticFields()

◆ initializeStatus()

BoolValue & clang::dataflow::statusor_model::initializeStatus ( RecordStorageLocation & StatusLoc,
Environment & Env )

◆ initializeStatusOr()

BoolValue & clang::dataflow::statusor_model::initializeStatusOr ( RecordStorageLocation & StatusOrLoc,
Environment & Env )

Definition at line 175 of file UncheckedStatusOrAccessModel.cpp.

References initializeStatus(), and locForStatus().

◆ isSafeUnwrap()

bool clang::dataflow::statusor_model::isSafeUnwrap ( RecordStorageLocation * StatusOrLoc,
const Environment & Env )
static

◆ isStatusOrMemberCallWithName()

◆ isStatusOrOperatorBaseType()

bool clang::dataflow::statusor_model::isStatusOrOperatorBaseType ( QualType Type)
static

Definition at line 63 of file UncheckedStatusOrAccessModel.cpp.

References isTypeNamed().

Referenced by getStatusOrBaseClass().

◆ isStatusOrOperatorCallWithName()

auto clang::dataflow::statusor_model::isStatusOrOperatorCallWithName ( llvm::StringRef operator_name)
static

◆ isStatusOrType()

bool clang::dataflow::statusor_model::isStatusOrType ( QualType Type)

Definition at line 203 of file UncheckedStatusOrAccessModel.cpp.

References isTypeNamed().

Referenced by getStatusOrBaseClass().

◆ isStatusType()

bool clang::dataflow::statusor_model::isStatusType ( QualType Type)

Definition at line 207 of file UncheckedStatusOrAccessModel.cpp.

References isTypeNamed().

Referenced by findStatusType(), and getSyntheticFields().

◆ isTypeNamed()

bool clang::dataflow::statusor_model::isTypeNamed ( QualType Type,
clang::ArrayRef< clang::StringRef > NS,
StringRef Name )
static

◆ locForOk()

StorageLocation & clang::dataflow::statusor_model::locForOk ( RecordStorageLocation & StatusLoc)

◆ locForStatus()

RecordStorageLocation & clang::dataflow::statusor_model::locForStatus ( RecordStorageLocation & StatusOrLoc)

◆ namespaceEquals()

bool clang::dataflow::statusor_model::namespaceEquals ( const NamespaceDecl * NS,
clang::ArrayRef< clang::StringRef > NamespaceNames )
static

◆ statusClass()

clang::ast_matchers::DeclarationMatcher clang::dataflow::statusor_model::statusClass ( )

◆ statusOrClass()

◆ statusOrOperatorBaseClass()

◆ statusOrType()

clang::ast_matchers::TypeMatcher clang::dataflow::statusor_model::statusOrType ( )

◆ transferStatusOrOkCall()

void clang::dataflow::statusor_model::transferStatusOrOkCall ( const CXXMemberCallExpr * Expr,
const MatchFinder::MatchResult & ,
LatticeTransferState & State )
static

◆ valForOk()

BoolValue & clang::dataflow::statusor_model::valForOk ( RecordStorageLocation & StatusLoc,
Environment & Env )

◆ valueCall()

auto clang::dataflow::statusor_model::valueCall ( )
static

◆ valueOperatorCall()

auto clang::dataflow::statusor_model::valueOperatorCall ( )
static