clang: lib/Sema/CheckExprLifetime.cpp File Reference (original) (raw)

Functions

static LifetimeResult

clang::sema::getEntityLifetime (const InitializedEntity *Entity, const InitializedEntity *InitField=nullptr)

Determine the declaration which an initialized entity ultimately refers to, for the purpose of lifetime-extending a temporary bound to a reference in the initialization of Entity.

static bool

clang::sema::isVarOnPath (const IndirectLocalPath &Path, VarDecl *VD)

static bool

clang::sema::pathContainsInit (const IndirectLocalPath &Path)

static void

clang::sema::visitLocalsRetainedByInitializer (IndirectLocalPath &Path, Expr *Init, LocalVisitor Visit, bool RevisitSubinits)

Visit the locals that would be reachable through an object initialized by the prvalue expression Init.

static void

clang::sema::visitLocalsRetainedByReferenceBinding (IndirectLocalPath &Path, Expr *Init, ReferenceKind RK, LocalVisitor Visit)

Visit the locals that would be reachable through a reference bound to the glvalue expression Init.

static bool

clang::sema::isPointerLikeType (QualType QT)

static bool

clang::sema::isInStlNamespace (const Decl *D)

static bool

clang::sema::isContainerOfPointer (const RecordDecl *Container)

static bool

clang::sema::isContainerOfOwner (const RecordDecl *Container)

static bool

clang::sema::isStdInitializerListOfPointer (const RecordDecl *RD)

static bool

clang::sema::shouldTrackImplicitObjectArg (const CXXMethodDecl *Callee)

static bool

clang::sema::shouldTrackFirstArgument (const FunctionDecl *FD)

static bool

clang::sema::isCopyLikeConstructor (const CXXConstructorDecl *Ctor)

static bool

clang::sema::shouldTrackFirstArgumentForConstructor (const CXXConstructExpr *Ctor)

static void

clang::sema::visitFunctionCallArguments (IndirectLocalPath &Path, Expr *Call, LocalVisitor Visit)

static PathLifetimeKind

clang::sema::shouldLifetimeExtendThroughPath (const IndirectLocalPath &Path)

Determine whether this is an indirect path to a temporary that we are supposed to lifetime-extend along.

static SourceRange

clang::sema::nextPathEntryRange (const IndirectLocalPath &Path, unsigned I, Expr *E)

Find the range for the first interesting entry in the path at or after I.

static bool

clang::sema::pathOnlyHandlesGslPointer (const IndirectLocalPath &Path)

static AnalysisResult

clang::sema::analyzePathForGSLPointer (const IndirectLocalPath &Path, Local L, LifetimeKind LK)

static bool

clang::sema::shouldRunGSLAssignmentAnalysis (const Sema &SemaRef, const AssignedEntity &Entity)

static void

clang::sema::checkExprLifetimeImpl (Sema &SemaRef, const InitializedEntity *InitEntity, const InitializedEntity *ExtendingEntity, LifetimeKind LK, const AssignedEntity *AEntity, const CapturingEntity *CapEntity, Expr *Init)

void

clang::sema::checkInitLifetime (Sema &SemaRef, const InitializedEntity &Entity, Expr *Init)

Check that the lifetime of the given expr (and its subobjects) is sufficient for initializing the entity, and perform lifetime extension (when permitted) if not.

void

clang::sema::checkExprLifetimeMustTailArg (Sema &SemaRef, const InitializedEntity &Entity, Expr *Init)

Check that the lifetime of the given expr (and its subobjects) is sufficient, assuming that it is passed as an argument to a musttail function.

void

clang::sema::checkAssignmentLifetime (Sema &SemaRef, const AssignedEntity &Entity, Expr *Init)

Check that the lifetime of the given expr (and its subobjects) is sufficient for assigning to the entity.

void

clang::sema::checkCaptureByLifetime (Sema &SemaRef, const CapturingEntity &Entity, Expr *Init)

bool

clang::sema::isGslOwnerType (QualType QT)

bool

clang::sema::isGslPointerType (QualType QT)